Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.23 KB | None | 0 0
  1. using AutoMapper;
  2. using AutoMapper.QueryableExtensions;
  3. using Hydrogen.Framework.Infrastructure;
  4. using Hydrogen.Vault.Model;
  5. using Hydrogen.Vault.Server;
  6. using HydrogenUI.Infrastructure.Helpers;
  7. using HydrogenUI.Services.Base;
  8. using HydrogenVault.ViewModels.Safe;
  9. using HydrogenVault.ViewModels.StoredItem;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Linq.Expressions;
  14.  
  15. namespace HydrogenVault.Services
  16. {
  17. public class VaultWebService : BaseWebService
  18. {
  19. private VaultFacade vaultFacade;
  20.  
  21. public VaultWebService(VaultFacade vaultFacade)
  22. : base(vaultFacade)
  23. {
  24. this.vaultFacade = vaultFacade;
  25. }
  26.  
  27. //public override IList<T> GetCollection<T>(Expression<Func<T, bool>> filter = null, List<OrderByModel<T>> orderByList = null, uint? skip = null, uint? take = null)
  28. //{
  29. // List<T> returnList = base.GetCollection<T>(filter, orderByList, skip, take).ToList();
  30.  
  31. // if (typeof(T) == typeof(SafeDisplayViewModel))
  32. // {
  33. // returnList.ForEach(safe =>
  34. // {
  35. // var allItemsThatHavePasswordToThisSafe = GetItemsByTargetSafeId(safe.Id);
  36.  
  37. // PopulateSafesThatHavePasswordToThisSafe(safe as SafeDisplayViewModel, allItemsThatHavePasswordToThisSafe, returnList.Select(x => x as SafeDisplayViewModel));
  38. // });
  39. // }
  40.  
  41. // return returnList;
  42. //}
  43.  
  44.  
  45. //public IQueryable<SafeDisplayViewModel> GetAllSafeDisplayModels()
  46. // {
  47. // var allSafes = base.GetCollection<SafeDisplayViewModel>().ToList();
  48.  
  49. // allSafes.ForEach(safe =>
  50. // {
  51. // var allItemsThatHavePasswordToThisSafe = GetItemsByTargetSafeId(safe.Id);
  52.  
  53. // PopulateSafesThatHavePasswordToThisSafe(safe, allItemsThatHavePasswordToThisSafe, allSafes);
  54. // });
  55.  
  56. // return allSafes.AsQueryable();
  57. // }
  58.  
  59. //private void PopulateSafesThatHavePasswordToThisSafe(SafeDisplayViewModel theSafe, IQueryable<ItemDisplayViewModel> itemsThatHavePasswordToThisSafe,
  60. // IEnumerable<SafeDisplayViewModel> allSafes)
  61. //{
  62. // theSafe.CanOpenWithSafes = string.Empty;
  63.  
  64. // if (itemsThatHavePasswordToThisSafe.Count() > 0)
  65. // {
  66. // foreach (var itemToThisSafe in itemsThatHavePasswordToThisSafe)
  67. // {
  68. // theSafe.CanOpenWithSafes += allSafes.Where(safe => safe.Id == itemToThisSafe.SafeId).First().Name;
  69. // theSafe.CanOpenWithSafes += ", ";
  70. // }
  71.  
  72. // if (theSafe.CanOpenWithSafes.Length > 0)
  73. // {
  74. // theSafe.CanOpenWithSafesCanOpenWithSafes = theSafe.CanOpenWithSafes.Substring(0, theSafe.CanOpenWithSafes.Length - 2);
  75. // }
  76. // }
  77. //}
  78.  
  79. public void DeleteSafe(int id)
  80. {
  81. var dbModel = this.vaultFacade.GetSafe(id);
  82. this.vaultFacade.DeleteSafe(dbModel);
  83. }
  84.  
  85. public bool IsCorrectSafePassword(int safeId, string password)
  86. {
  87. return this.vaultFacade.IsCorrectSafePassword(safeId, password);
  88. }
  89.  
  90. public void Save(SafeEditViewModel model)
  91. {
  92. var dbModel = model.Id > 0 ? this.vaultFacade.GetSafe(model.Id) : new Safe();
  93. Mapper.Map(model, dbModel);
  94. this.vaultFacade.SaveSafe(dbModel);
  95. }
  96.  
  97. public SafeEditViewModel GetSafeById(int id)
  98. {
  99. var dbModel = this.vaultFacade.GetSafe(id);
  100. var model = Mapper.Map<SafeEditViewModel>(dbModel);
  101. return model;
  102. }
  103.  
  104. public void ChangeSafePassword(string oldPassword, string newPassword, int safeId, int userId)
  105. {
  106. this.vaultFacade.ChangeSafePassword(oldPassword, newPassword, safeId, userId);
  107. }
  108.  
  109. public IQueryable<ItemDisplayViewModel> GetAllItemDisplayModels(int safeId)
  110. {
  111. return this.vaultFacade.GetItemDisplaysBySafeIdAllData(safeId)
  112. .AsQueryable()
  113. .Project().To<ItemDisplayViewModel>()
  114. .OrderBy(c => c.Id);
  115. }
  116.  
  117. public void DeleteItem(int id)
  118. {
  119. var dbModel = this.vaultFacade.GetItem(id);
  120. this.vaultFacade.DeleteItem(dbModel);
  121. }
  122.  
  123. public string GetPlainTextItemById(int id, string password)
  124. {
  125. var dbModel = this.vaultFacade.GetItem(id);
  126. var model = Mapper.Map<PlainTextItemPostedDataViewModel>(dbModel);
  127. return this.vaultFacade.GetPlainTextFromItem(dbModel, password); ;
  128. }
  129.  
  130. //public void Save(PlainTextItemPostedDataViewModel model, string password)
  131. //{
  132. // var dbModel = new Item();
  133. // if (model.Id != 0)
  134. // {
  135. // dbModel = this.vaultFacade.GetItem(model.Id);
  136. // }
  137.  
  138. // Mapper.Map(model, dbModel);
  139.  
  140. // this.vaultFacade.SavePlainTextItem(dbModel, model.PlainText, password);
  141. //}
  142.  
  143. //public FileItemPostedDataViewModel GetFileItemById(int id, string password)
  144. //{
  145. // var dbModel = this.vaultFacade.GetItem(id);
  146. // var model = Mapper.Map<FileItemPostedDataViewModel>(dbModel);
  147.  
  148. // model.FileName = this.vaultFacade.GetFileNameFromItem(dbModel, password);
  149. // return model;
  150. //}
  151.  
  152. //public void Save(FileItemPostedDataViewModel model, string password)
  153. // {
  154. // var dbModel = new Item();
  155. // if (model.Id != 0)
  156. // {
  157. // dbModel = this.vaultFacade.GetItem(model.Id);
  158. // }
  159.  
  160. // Mapper.Map(model, dbModel);
  161. // if (model.File == null)
  162. // {
  163. // this.vaultFacade.SaveFileItem(dbModel);
  164. // }
  165. // else
  166. // {
  167. // byte[] data = UploadHelper.GetBytes(model.File);
  168. // dbModel.ItemData = data;
  169. // this.vaultFacade.SaveFileItem(dbModel, model.File.FileName, data, password);
  170. // }
  171. // }
  172.  
  173. //public void Save(SafePasswordItemPostedDataViewModel model, string password)
  174. //{
  175. // var dbModel = new Item();
  176. // if (model.Id != 0)
  177. // {
  178. // dbModel = this.vaultFacade.GetItem(model.Id);
  179. // }
  180.  
  181. // Mapper.Map(model, dbModel);
  182. // this.vaultFacade.SaveSafePasswordItem(dbModel, model.TargetSafePassword, password);
  183. //}
  184.  
  185. public byte[] EncryptFileItem(string fileName = null, byte[] fileData = null, string safeUserPassword = null)
  186. {
  187. return vaultFacade.EncryptFileItem(fileName, fileData, safeUserPassword);
  188. }
  189.  
  190. public byte[] EncryptPlainText(string text, string thePassword)
  191. {
  192. return vaultFacade.EncryptPlainText(text, thePassword);
  193. }
  194.  
  195. public DownloadFileViewModel GetFileForDownload(int id, string password)
  196. {
  197. var dbModel = this.vaultFacade.GetItem(id);
  198. var model = new DownloadFileViewModel()
  199. {
  200. FileBytes = this.vaultFacade.GetFileFromItem(dbModel, password),
  201. FileName = this.vaultFacade.GetFileNameFromItem(dbModel, password)
  202. };
  203.  
  204. return model;
  205. }
  206.  
  207. public bool PasswordExpired(int id)
  208. {
  209. var item = this.vaultFacade.GetSafe(id);
  210. return this.vaultFacade.PasswordExpirationChecker(item.PasswordChangedDate, item.PasswordExpirationPeriod);
  211. }
  212.  
  213. public bool UserHasVaultRecords(int userId)
  214. {
  215. bool result;
  216.  
  217. int itemsCount = this.vaultFacade.GetItems()
  218. .Where(item => item.CreatedById == userId
  219. || item.ModifiedById == userId)
  220. .Count();
  221.  
  222. int safesCount = this.vaultFacade.GetSafes()
  223. .Where(safe => safe.CreatedById == userId
  224. || safe.ModifiedById == userId)
  225. .Count();
  226.  
  227. result = (itemsCount > 0) || (safesCount > 0) ? true : false;
  228.  
  229. return result;
  230. }
  231.  
  232. public SafePasswordItemPostedDataViewModel GetSafePasswordItemById(int id, string password)
  233. {
  234. var dbModel = this.vaultFacade.GetItem(id);
  235. var model = Mapper.Map<SafePasswordItemPostedDataViewModel>(dbModel);
  236. model.TargetSafePassword = this.vaultFacade.GetPlainTextFromItem(dbModel, password);
  237. return model;
  238. }
  239.  
  240. public IQueryable<ItemDisplayViewModel> GetItemsByTargetSafeId(int targetSafeId)
  241. {
  242. return this.vaultFacade.GetItemsByTargetSafeId(targetSafeId)
  243. .AsQueryable()
  244. .Project().To<ItemDisplayViewModel>()
  245. .OrderBy(c => c.Id);
  246. }
  247.  
  248. public IList<ItemDisplayViewModel> GetItemDisplaysByNameAndDetailsContains(string searchKey)
  249. {
  250. return this.vaultFacade.GetItemDisplaysByNameAndDetailsContains(searchKey)
  251. .AsQueryable()
  252. .Project().To<ItemDisplayViewModel>()
  253. .OrderBy(c => c.Id)
  254. .ToList();
  255. }
  256.  
  257. public ItemDisplayViewModel GetItem(int id)
  258. {
  259. var dbModel = this.vaultFacade.GetItem(id);
  260. var model = Mapper.Map<ItemDisplayViewModel>(dbModel);
  261.  
  262. return model;
  263. }
  264.  
  265. public byte[] EncryptItemData(byte[] theData, string thePassword)
  266. {
  267. return vaultFacade.EncryptItemData(theData, thePassword);
  268. }
  269. }
  270. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement