public async Task <IHttpActionResult> ChangePhoto(ChangePhotoBindingModel model) { if (ModelState.IsValid) { var user = await RepositoryProvider.UserStore.FindByIdAsync(CurrentAccess.UserId); var oldPhotoPath = user.PhotoPath; Stream s = new MemoryStream(model.Photo.Buffer); ImageHelper.Resize(s, s, 300, ImageFormat.Jpeg); var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); var newPhotoPath = await azureStorageHelper.SaveFileStream(s, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); user.PhotoPath = newPhotoPath; await UserManager.UpdateAsync(user); if (!string.IsNullOrEmpty(oldPhotoPath)) { await azureStorageHelper.DeleteFile(oldPhotoPath, AzureStorageHelper.FileUsage.UserPhotos); } return(Ok(new { photoPath = newPhotoPath })); } return(BadRequest()); }
public async Task <ActionResult> Edit( [Bind(Include = "GroupId,Name,Description,Code,Picture,PictureUrl")] EditGroupBindingModel model) { if (ModelState.IsValid) { var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault( p => p.Name.ToUpper() == model.Name.ToUpper() || p.Code.ToUpper() == model.Code.ToUpper()); if (group != null && group.GroupId != model.GroupId) { ModelState.AddModelError("", "Name or Code has been used."); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Code" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { group = RepositoryProvider.Get <GroupRepository>().GetById(model.GroupId.GetValueOrDefault()); group.Name = model.Name; group.Description = model.Description; group.Code = model.Code; var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); if (model.Picture != null && model.Picture.ContentLength > 0) { var stream = new MemoryStream(); ImageHelper.Resize(model.Picture.InputStream, stream, 300, ImageFormat.Jpeg); var newPicture = await azureStorageHelper.SaveFileStream(stream, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); group.Picture = newPicture; } RepositoryProvider.Get <GroupRepository>().Update(group); RepositoryProvider.Save(); if (!string.IsNullOrEmpty(model.PictureUrl)) { await azureStorageHelper.DeleteFile(model.PictureUrl, AzureStorageHelper.FileUsage.UserPhotos); } return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Code" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } return(View(model)); }
// GET: User/Delete/5 public async Task <ActionResult> Delete(string id) { var user = UserManager.FindById(id); var isSuccess = RepositoryProvider.Get <SPRepository>().DeleteUserById(id); if (isSuccess) { var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); if (!string.IsNullOrEmpty(user.PhotoPath)) { await azureStorageHelper.DeleteFile(user.PhotoPath, AzureStorageHelper.FileUsage.UserPhotos); } } return(Redirect(Request.UrlReferrer == null ? "/User" : Request.UrlReferrer.AbsoluteUri)); }
public async Task <ActionResult> Edit( [Bind(Include = "UserId,FirstName,LastName,PhotoPath,Photo,Status,UserName,RoleName,GroupIds")] EditUserMvcViewModel model) { if (ModelState.IsValid) { var user = UserManager.FindById(model.UserId); if (model.Photo != null && model.Photo.InputStream.Length > 0) { var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); Stream s = model.Photo.InputStream; ImageHelper.Resize(s, s, 300, ImageFormat.Jpeg); var photoUrl = await azureStorageHelper.SaveFileStream(s, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); if (!string.IsNullOrEmpty(user.PhotoPath)) { await azureStorageHelper.DeleteFile(user.PhotoPath, AzureStorageHelper.FileUsage.UserPhotos); } user.PhotoPath = photoUrl; } user.FirstName = model.FirstName; user.LastName = model.LastName; user.Status = model.Status.ToString(); user.Roles.Clear(); var role = RoleManager.FindByName(model.RoleName.ToString()); user.Roles.Add(new IdentityUserRole() { UserId = user.Id, RoleId = role.Id }); if (model.GroupIds != null && model.GroupIds.Length > 0) { user.JoinedGroups.Clear(); foreach (var gId in model.GroupIds) { Guid id = Guid.Parse(gId); var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault(p => p.GroupId == id); if (group != null) { user.JoinedGroups.Add(group); } } } IdentityResult result = await UserManager.UpdateAsync(user); if (!result.Succeeded) { AddErrors(result); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } ViewBag.ReturnUrl = Request.QueryString["returnUrl"]; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View(model)); }
public async Task <ActionResult> Create( [Bind(Include = "FirstName,LastName,Photo,UserName,Password,ConfirmPassword,RoleName,GroupIds,Status")] RegisterUserMvcViewModel model) { if (ModelState.IsValid) { var user = UserManager.FindByName(model.UserName); if (user != null) { ModelState.AddModelError("", "User Name has been userd."); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); Stream s = model.Photo.InputStream; ImageHelper.Resize(s, s, 300, ImageFormat.Jpeg); var photoUrl = await azureStorageHelper.SaveFileStream(s, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); user = new ApplicationUser { UserName = model.UserName, Email = model.UserName, FirstName = model.FirstName, LastName = model.LastName, PhotoPath = photoUrl, CreateDate = DateTime.UtcNow, LastLoginDate = DateTime.UtcNow, Status = model.Status.ToString() }; var role = RoleManager.FindByName(model.RoleName.ToString()); user.Roles.Add(new IdentityUserRole() { UserId = user.Id, RoleId = role.Id }); if (model.GroupIds != null && model.GroupIds.Length > 0) { foreach (var gId in model.GroupIds) { Guid id = Guid.Parse(gId); var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault(p => p.GroupId == id); if (group != null) { user.JoinedGroups.Add(group); } } } IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { await azureStorageHelper.DeleteFile(photoUrl, AzureStorageHelper.FileUsage.UserPhotos); AddErrors(result); ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); } else { return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/User" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } } ViewBag.ReturnUrl = Request.QueryString["returnUrl"]; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View(model)); }
public async Task <ActionResult> Edit( [Bind(Include = "ChallengeId,Name,Type,Count,Description,DueDate,Status,GroupIds,PictureUrl,Picture")] EditChallengeBindingModel model) { //FrequencyValue,FrequencyCount,FrequencyType, if (ModelState.IsValid) { //var challenge = // RepositoryProvider.Get<ChallengeRepository>() // .FirstOrDefault(p => p.Name.ToUpper() == model.Name.ToUpper()); //if (challenge != null && challenge.ChallengeId != model.ChallengeId) //{ // ModelState.AddModelError("", "Challenge Name has been used."); // ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) // ? "/Challenge" // : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); //} //else { var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(model.ChallengeId); challenge.Name = model.Name; challenge.Count = model.Count; challenge.Description = model.Description; challenge.DueDate = model.DueDate.AddDays(1).AddSeconds(-1).ToUniversalTime(); //challenge.FrequencyValue = model.FrequencyValue; //challenge.FrequencyCount = model.FrequencyCount; challenge.Type = model.Type.ToString(); challenge.Status = model.Status.ToString(); //challenge.FrequencyType = model.FrequencyType.ToString(); if (model.GroupIds != null && model.GroupIds.Length > 0) { challenge.Groups.Clear(); foreach (var gId in model.GroupIds) { Guid id = Guid.Parse(gId); var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault(p => p.GroupId == id); if (group != null) { challenge.Groups.Add(group); } } } var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); if (model.Picture != null && model.Picture.ContentLength > 0) { var stream = new MemoryStream(); ImageHelper.Resize(model.Picture.InputStream, stream, 300, ImageFormat.Jpeg); var newPicture = await azureStorageHelper.SaveFileStream(stream, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); challenge.Picture = newPicture; } RepositoryProvider.Get <ChallengeRepository>().Update(challenge); RepositoryProvider.Save(); if (!string.IsNullOrEmpty(model.PictureUrl)) { await azureStorageHelper.DeleteFile(model.PictureUrl, AzureStorageHelper.FileUsage.UserPhotos); } return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Challenge" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } ViewBag.ReturnUrl = Request.QueryString["returnUrl"]; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View(model)); }