public async Task <IActionResult> Save([FromBody] DSRMEdit value) { if (!ModelState.IsValid) { Dictionary <string, string> errors = new Dictionary <string, string>(); foreach (var item in ModelState) { if (item.Value.Errors.Any()) { errors.Add(item.Key, string.Join("; ", item.Value.Errors.Select(x => x.ErrorMessage))); } } return(Error(message: "Site edit model parameters is invalid!", internalMessage: null, data: errors)); } var hasSiteDefinition = await Db.Sites.AnyAsync(z => (z.Name.Equals(value.Name) || z.SiteAddress.Equals(value.SiteAddress)) && z.Id != value.Id); if (hasSiteDefinition) { return(Error(message: "This changes is already using another record!")); } var site = await Db.Sites.FirstOrDefaultAsync(z => z.Id == value.Id); if (site == null) { return(Error(message: "Site definition not found!")); } site.AccessCode = value.AccessCode; site.AccessCodeEndDate = value.ExpirationDate; site.ModifiedOn = DateTime.UtcNow; site.Name = value.Name; site.Description = value.Description; site.SiteAddress = value.SiteAddress; site.Status = (DSDSiteStatusTypes)value.Status; Db.Sites.Update(site); var result = await Db.SaveChangesAsync(); if (result > 0) { return(Success("Site saved successfully.")); } else { return(Error(message: "Something is wrong with your model!")); } }
public async Task <IActionResult> Save([FromBody] DSRMEdit value) { if (!ModelState.IsValid) { Dictionary <string, string> errors = new Dictionary <string, string>(); foreach (var item in ModelState) { if (item.Value.Errors.Any()) { errors.Add(item.Key, string.Join("; ", item.Value.Errors.Select(x => x.ErrorMessage))); } } return(Error(message: "Profile edit model parameters is invalid!", internalMessage: null, data: errors)); } if (!string.IsNullOrEmpty(value.Password)) { if (value.Password.Length < 6) { return(Error("Password field must be min 6 character!")); } if (value.Password.Length > 20) { return(Error("Password field must be max 20 character!")); } } var hasUserDefinition = await Db.Users.AnyAsync(z => (z.Username.Equals(value.Username) || z.Email.Equals(value.Email)) && z.Id != UserId); if (hasUserDefinition) { return(Error(message: "This changes (username or email) is already using another record!")); } var user = await Db.Users.FirstOrDefaultAsync(z => z.Id == UserId); if (user == null) { return(Error(message: "User not found!")); } user.Firstname = value.Firstname; user.Lastname = value.Lastname; user.Email = value.Email; user.Username = value.Username; user.ModifiedOn = DateTime.UtcNow; if (!string.IsNullOrEmpty(value.Password)) { user.Password = new CryptoHelper().HashWithSHA512(value.Password); } Db.Users.Update(user); var result = await Db.SaveChangesAsync(); if (result > 0) { return(Success("User updated successfully.")); } else { return(Error(message: "Something is wrong with your model!")); } }