public Guid Upload(String fileLabel) { var user = _userSvc.CurrentUser(); Repos.File file = _files.GetByIdUserAndLabel(user.Id, HttpContext.Current.Request.Files["file"].FileName); var encriptionKey = HttpContext.Current.Request.Params["encryptionKey"]; using (var fileUploadStream = HttpContext.Current.Request.Files["file"].InputStream) { using (var ms = new MemoryStream()) { fileUploadStream.CopyTo(ms); var data = ms.ToArray(); var strData = Encoding.UTF8.GetString(data); var crys = new CryptoService(); var root = crys.Initialize(strData); strData = crys.Save(); var encrypted = Encoding.UTF8.GetBytes(_crypt.Encrypt(strData, encriptionKey)); if (file == null) { file = new Repos.File { Id = Guid.NewGuid(), Label = fileLabel, Name = HttpContext.Current.Request.Files["file"].FileName, UserId = user.Id, Content = encrypted }; _files.Add(file); } else { file.Content = encrypted; _files.Update(file); } _attach.DeleteFile(file.Id); foreach (var singleFile in root.Attachments) { //_attach.DeleteFile(Guid.Parse(singleFile.Id)); var toAdd = new Attach { Id = Guid.Parse(singleFile.Id), UserId = user.Id, FileId = file.Id, Name = file.Name, Data = singleFile.Data }; _attach.Add(toAdd); } return(file.Id); } } }
public Guid CreateNew(LoadFileModel model) { if (!model.FileName.ToLowerInvariant().EndsWith(".xml")) { model.FileName += ".xml"; } var user = _userSvc.CurrentUser(); Repos.File file = _files.GetByIdUserAndLabel(user.Id, model.FileName); var encriptionKey = model.FileKey; var crys = new CryptoService(); var empty = crys.Empty; var root = crys.Initialize(empty); var strData = crys.Save(); var encrypted = Encoding.UTF8.GetBytes(_crypt.Encrypt(strData, encriptionKey)); if (file == null) { file = new Repos.File { Id = Guid.NewGuid(), Label = model.FileLabel, Name = model.FileName, UserId = user.Id, Content = encrypted }; _files.Add(file); } else { file.Content = encrypted; _files.Update(file); } _attach.DeleteFile(file.Id); foreach (var singleFile in root.Attachments) { //_attach.DeleteFile(Guid.Parse(singleFile.Id)); var toAdd = new Attach { Id = Guid.Parse(singleFile.Id), UserId = user.Id, FileId = file.Id, Name = file.Name, Data = singleFile.Data }; _attach.Add(toAdd); } return(file.Id); }