//Work Well public async Task EditRentalInfo(EditRentalInfoForPropertyViewModel rentalInfoEditModel, string loggedUserId) { if (loggedUserId == null) { throw new ArgumentNullException(nameof(loggedUserId)); } var rentalInfoToEdit = unitOfWork.RentalsRepository .Where(r => r.Id == rentalInfoEditModel.RentalInfoId) .FirstOrDefault() ?? throw new ContentNotFoundException("Не е намерен имотът!"); if (rentalInfoToEdit.Property.OwnerId != loggedUserId && rentalInfoToEdit.Property.AgentId != loggedUserId && !await userManager.IsInRoleAsync(loggedUserId, "Administrator")) { throw new NotAuthorizedException("Нямате право да редактирате този имот!"); } rentalInfoToEdit.UnitTypeId = rentalInfoEditModel.UnitTypeId; rentalInfoToEdit.AdditionalDescription = rentalInfoEditModel.AdditionalInfo; rentalInfoToEdit.RentalPrice = rentalInfoEditModel.RentalPrice; rentalInfoToEdit.UnitCount = rentalInfoEditModel.UnitCount; rentalInfoToEdit.RentalPricePeriodId = rentalInfoEditModel.RentalPricePeriodId; //Add New Extras rentalInfoToEdit.Extras.Clear(); var extrasToBeAdded = _extrasManager.GetRentalExtras(rentalInfoEditModel.RentalExtras .Where(r => r.IsChecked) .Select(r => r.ExtraId) .ToList()); rentalInfoToEdit.Extras = new HashSet <Extras>(extrasToBeAdded); rentalInfoToEdit.Attributes.Clear(); rentalInfoToEdit.Attributes = new HashSet <KeyValuePairs>(rentalInfoEditModel.Attributes .Select(a => new KeyValuePairs { Key = a.Key, Value = a.Value }) .ToList()); unitOfWork.RentalsRepository.Edit(rentalInfoToEdit); unitOfWork.Save(); }
public async Task <ActionResult> Edit(EditRentalInfoForPropertyViewModel model) { if (!ModelState.IsValid) { return(Json(ModelState.ToDictionary())); } try { await _rentalInfoManager.EditRentalInfo(model, User.Identity.GetUserId()); return(Json("STATUS_OK")); } catch (ContentNotFoundException ex) { return(HttpNotFound(ex.Message)); } }