public async Task <ActionResult> Edit(PartnersEditViewModel model) { if (!ModelState.IsValid) { return(Json(ModelState.ToDictionary())); } var partnerEdited = await _partnersManager.EditAsync(model, User.Identity.GetUserId()); return(Json(partnerEdited)); }
public async Task <PartnersListViewModel> EditAsync(PartnersEditViewModel model, string agentId) { if (string.IsNullOrEmpty(agentId)) { throw new ArgumentException("Не е намерен брокерът, който редактира информацията за Партньор!"); } if (!await IsAdminOrAgent(agentId)) { throw new NotAuthorizedUserException("Потребителят няма право на това действие! Само админи и брокери имат право да редактират информацията за Партньори !"); } if (dbContext.Partners.Any(p => p.PhoneNumber == model.PhoneNumber && p.Id != model.Id)) { throw new ArgumentException("Съществува партньор с този телефонен номер!"); } var colleagueToEdit = await dbContext.Partners .FirstOrDefaultAsync(c => c.Id == model.Id) ?? throw new ContentNotFoundException("Не е намеренa информацията за партньорът, който искате да редактирате."); if (colleagueToEdit.AgentIdCreator != agentId && !await IsUserAdministrator(agentId)) { throw new NotAuthorizedUserException("Нямате право да редактирате Партньор добавен от друг Агент!"); } if (!await IsPartnerTypeExisting(model.PartnerTypeId)) { throw new ContentNotFoundException("Не съществува типът Партньор, който сте избрали!"); } dbContext.Partners.Attach(colleagueToEdit); colleagueToEdit.PartnerCompanyName = model.PartnerCompanyName; colleagueToEdit.PartnerName = model.PartnerName; colleagueToEdit.PhoneNumber = model.PhoneNumber; colleagueToEdit.Email = model.Email; colleagueToEdit.CityId = model.CityId; colleagueToEdit.SocialMediaAccount = model.SocialMediaAccount; colleagueToEdit.AdditionalInformation = model.AdditionalInformation; colleagueToEdit.PartnerTypeId = model.PartnerTypeId; await dbContext.SaveChangesAsync(); return(await Get(agentId, model.Id)); }