public ActionResult CreateFolder(string folderName, string clientDateTime) { if (folderName.Length > 25) { Error("Folder name should be 25 characters maximum!!!"); return(RedirectToAction("ListAllContent")); } var userData = _readOnlyRepository.First <Account>(x => x.EMail == User.Identity.Name); if (userData.Files.Count(l => l.Name == folderName) > 0) { Error("Folder already exists!!!"); return(RedirectToAction("ListAllContent")); } var actualPath = Session["ActualPath"].ToString(); var putFolder = new PutObjectRequest { BucketName = userData.BucketName, Key = actualPath + folderName + "/", ContentBody = string.Empty }; AWSClient.PutObject(putFolder); AddActivity("El usuario ha creado el folder " + folderName); //var serverFolderPath = Server.MapPath("~/App_Data/UploadedFiles/" + actualPath + "/"+folderName); //var folderInfo = new DirectoryInfo(serverFolderPath); //if (folderInfo.Exists) //{ // Error("Folder already exists!!!"); // return RedirectToAction("ListAllContent"); //} var clientDate = Convert.ToDateTime(clientDateTime); userData.Files.Add(new File { Name = folderName, CreatedDate = clientDate, FileSize = 0, IsArchived = false, IsDirectory = true, ModifiedDate = clientDate, Type = "", Url = actualPath }); //var result=Directory.CreateDirectory(serverFolderPath); //if(!result.Exists) // Error("The folder was not created!!! Try again please!!!"); //else //{ Success("The folder was created successfully!!!"); _writeOnlyRepository.Update(userData); //} return(RedirectToAction("ListAllContent")); }
public ActionResult AccountSignUp(AccountSignUpModel model) { var result = _readOnlyRepository.Query <Account>(a => a.EMail == model.EMail); if (result.Any()) { Error("Email account is already registered in this site!!!"); return(View(model)); } var account = Mapper.Map <Account>(model); account.IsArchived = false; account.IsAdmin = false; account.IsBlocked = false; account.SpaceLimit = 2408; account.Password = EncriptacionMD5.Encriptar(model.Password); account.Isconfirmed = false; account.BucketName = string.Format("mdp.{0}", Guid.NewGuid()); //var account = new Account //{ // Name = accountModel.Name, // LastName = accountModel.LastName, // EMail = accountModel.EMail, // IsArchived = false, // IsBlocked = false, // SpaceLimit = 500, // UsedSpace = 0, // Password = EncriptacionMD5.Encriptar(accountModel.Password) //}; //account.AddRole(new Role{Name = "User",IsArchived = false}); var createdAccount = _writeOnlyRepository.Create(account); var token = Convert.ToInt64(Session["userReferralId"]); if (token != 0) { var userReferring = _readOnlyRepository.GetById <Account>(token); userReferring.Referrals.Add(createdAccount); _writeOnlyRepository.Update(userReferring); } var serverFolderPath = Server.MapPath("~/App_Data/UploadedFiles/" + account.EMail); Directory.CreateDirectory(serverFolderPath); var newBucket = new PutBucketRequest { BucketName = account.BucketName }; AWSClient.PutBucket(newBucket); var putFolder = new PutObjectRequest { BucketName = account.BucketName, Key = "Shared/", ContentBody = string.Empty }; AWSClient.PutObject(putFolder); var sharedDirectory = serverFolderPath + "/Shared"; Directory.CreateDirectory(sharedDirectory); //var serverFolderPath = Server.MapPath("~/App_Data/UploadedFiles/" + account.EMail); //Directory.CreateDirectory(serverFolderPath); //var sharedDirectory =serverFolderPath + "/Shared"; //Directory.CreateDirectory(sharedDirectory); if (createdAccount.Files == null) { createdAccount.Files = new List <Domain.File>(); } if (createdAccount.History == null) { createdAccount.History = new List <Actividades>(); } createdAccount.Files.Add(new Domain.File { CreatedDate = DateTime.Now, FileSize = 0, IsArchived = false, IsDirectory = true, Name = "Shared", Url = "", Type = "", ModifiedDate = DateTime.Now }); _writeOnlyRepository.Update(createdAccount); AddActivity("El usuario se registro.", createdAccount); // ESTOOOOOOO #region EnvioCorreoParaNotificacion var fechaActual = DateTime.Now.Date; var pass = result.FirstOrDefault().Id; var data = "" + fechaActual.Day + fechaActual.Month + fechaActual.Year; var tokenConfir = pass + ";" + EncriptacionMD5.Encriptar(data); //var url = "http://minidropbox-1.apphb.com/PasswordReset/PasswordReset"; var url = "http://minidropboxclase.apphb.com/Account/Confirmed"; var emailBody = new StringBuilder("<b>Confirm your account of MiniDropbox</b>"); emailBody.Append("<br/>"); emailBody.Append("<br/>"); emailBody.Append("<b>" + url + "?token=" + tokenConfir + "<b>"); emailBody.Append("<br/>"); emailBody.Append("<br/>"); emailBody.Append("<b>This link is only valid through " + DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year + "</b>"); if (MailSender.SendEmail(model.EMail, "Confirm your account of MiniDropbox", emailBody.ToString())) { return(Cancelar()); } Error("E-Mail failed to be sent, please try again!!!"); return(View(model)); #endregion return(Cancelar()); }
public void RenameFolder(long objectId, string oldObjectName, string newObjectName, string clientDateTime2) { var userData = _readOnlyRepository.First <Account>(a => a.EMail == User.Identity.Name); var fileData = userData.Files.FirstOrDefault(f => f.Id == objectId); var userFiles = userData.Files.Where(t => t.Url.Contains(fileData.Name)); var clientDate = Convert.ToDateTime(clientDateTime2); var newFoldUrl = string.IsNullOrEmpty(fileData.Url) || string.IsNullOrWhiteSpace(fileData.Url) ? newObjectName + "/" : fileData.Url.Replace(oldObjectName, newObjectName) + fileData.Name + "/"; var putFolder = new PutObjectRequest { BucketName = userData.BucketName, Key = newFoldUrl, ContentBody = string.Empty }; AWSClient.PutObject(putFolder); foreach (var file in userFiles) { if (file == null) { continue; } if (file.IsDirectory) { RenameFolder(file.Id, oldObjectName, newObjectName, clientDateTime2); } else { //Copy the object var newUrl = file.Url.Replace(oldObjectName, newObjectName) + file.Name; var copyRequest = new CopyObjectRequest { SourceBucket = userData.BucketName, SourceKey = file.Url + file.Name, DestinationBucket = userData.BucketName, DestinationKey = newUrl, CannedACL = S3CannedACL.PublicRead }; AWSClient.CopyObject(copyRequest); //Delete the original var deleteRequest = new DeleteObjectRequest { BucketName = userData.BucketName, Key = file.Url + file.Name }; AWSClient.DeleteObject(deleteRequest); file.ModifiedDate = clientDate; file.Url = file.Url.Replace(oldObjectName, newObjectName); _writeOnlyRepository.Update(file); } }//fin foreach var deleteFolderRequest = new DeleteObjectRequest { BucketName = userData.BucketName, Key = fileData.Url + fileData.Name + "/" }; AWSClient.DeleteObject(deleteFolderRequest); var newFolderUrl = fileData.Url.Replace(oldObjectName, newObjectName); fileData.Url = newFolderUrl; _writeOnlyRepository.Update(fileData); }
private bool fileUploader(HttpPostedFileBase fileControl, string user, string clientDateTime) { if (fileControl == null) { Error("There was a problem uploading the file , please try again!!!"); return(false); } var fileSize = fileControl.ContentLength; if (fileSize > 10485760) { Error("The file must be of 10 MB or less!!!"); return(false); } var userData = _readOnlyRepository.First <Account>(x => x.EMail == User.Identity.Name); var actualPath = Session["ActualPath"].ToString(); var fileName = Path.GetFileName(fileControl.FileName); var clientDate = Convert.ToDateTime(clientDateTime); //var serverFolderPath = Server.MapPath("~/App_Data/UploadedFiles/"+actualPath); //var directoryInfo = new DirectoryInfo(serverFolderPath); //if (!directoryInfo.Exists) //{ // directoryInfo.Create(); //} //var sharedDirectory = new DirectoryInfo( Server.MapPath("~/App_Data/UploadedFiles/"+User.Identity.Name + "/Shared")); //if (!sharedDirectory.Exists) //{ // sharedDirectory.Create(); // userData.Files.Add(new File // { // Name = "Shared", // CreatedDate = DateTime.Now, // ModifiedDate = DateTime.Now, // FileSize = 0, // Type = "", // Url = sharedDirectory.FullName, // IsArchived = false, // IsDirectory = true // }); //} //var path = Path.Combine(serverFolderPath, fileName); //var fileInfo = new DirectoryInfo(serverFolderPath+fileName); var putObjectRequest = new PutObjectRequest { BucketName = userData.BucketName, Key = actualPath + fileName, InputStream = fileControl.InputStream }; var putResponse = AWSClient.PutObject(putObjectRequest); if (userData.Files.Count(l => l.Name == fileName && l.Url.EndsWith(actualPath) && !l.IsArchived) > 0)//Actualizar Info Archivo { var bddInfo = userData.Files.FirstOrDefault(f => f.Name == fileName); //bddInfo.ModifiedDate = clientDate; //bddInfo.Type = fileControl.ContentType; //bddInfo.FileSize = fileSize; bddInfo.FileVersions.Add(new FileVersion { AmazonVersionId = putResponse.VersionId, CreationDate = clientDate, FileSize = fileSize, IsArchived = false }); _writeOnlyRepository.Update(bddInfo); } else//Archivo nuevo { var newFile = new File { Name = fileName, CreatedDate = clientDate, ModifiedDate = clientDate, FileSize = fileSize, Type = fileControl.ContentType, Url = actualPath, IsArchived = false, IsDirectory = false }; //if (userData.Files == null)//Si es primer archivo subido por el usuario //{ // userData.Files = new List<File> {newFile}; // var retorno = _writeOnlyRepository.Update(userData); // var file = retorno.Files.FirstOrDefault(); // file.FileVersions = new List<FileVersion>(); // file.FileVersions.Add(new FileVersion // { // AmazonVersionId = putResponse.VersionId, // CreationDate = clientDate, // FileSize = fileSize, // IsArchived = false // }); // _writeOnlyRepository.Update(file); //} //else //{ userData.Files.Add(newFile); var archivo = _writeOnlyRepository.Update(userData).Files.LastOrDefault(); archivo.FileVersions = new List <FileVersion>(); archivo.FileVersions.Add(new FileVersion { AmazonVersionId = putResponse.VersionId, CreationDate = clientDate, FileSize = fileSize, IsArchived = false }); _writeOnlyRepository.Update(archivo); //} } //fileControl.SaveAs(path); return(true); }