public async Task <ActionResult> Create(CustomerModel model) { if (ModelState.IsValid && ValidateCustomer(model)) { CustomerOrganisation customer = new CustomerOrganisation(); model.UpdateCustomer(customer, true); _dbContext.Add(customer); await _cacheService.Flush(CacheKeys.CustomerSettings); await _dbContext.SaveChangesAsync(); customer = await _dbContext.CustomerOrganisations.GetCustomerById(customer.CustomerOrganisationId); _notificationService.CustomerCreated(customer); return(RedirectToAction(nameof(View), new { Id = customer.CustomerOrganisationId, Message = "Myndighet har skapats" })); } return(View(model)); }
internal InterpreterBroker GetInterpreter(InterpreterDetailsModel interpreterModel, int brokerId, bool updateInformation = true) { if (interpreterModel == null) { throw new InvalidApiCallException(ErrorCodes.InterpreterAnswerNotValid); } InterpreterBroker interpreter = null; switch (EnumHelper.GetEnumByCustomName <InterpreterInformationType>(interpreterModel.InterpreterInformationType)) { case InterpreterInformationType.ExistingInterpreter: interpreter = _dbContext.InterpreterBrokers .SingleOrDefault(i => i.InterpreterBrokerId == interpreterModel.InterpreterId && i.BrokerId == brokerId); break; case InterpreterInformationType.AuthorizedInterpreterId: interpreter = _dbContext.InterpreterBrokers .SingleOrDefault(i => i.OfficialInterpreterId == interpreterModel.OfficialInterpreterId && i.BrokerId == brokerId); break; case InterpreterInformationType.NewInterpreter: //check if unique officialInterpreterId for broker if (_interpreterService.IsUniqueOfficialInterpreterId(interpreterModel.OfficialInterpreterId, brokerId)) { //Create the new interpreter, connected to the provided broker var newInterpreter = new InterpreterBroker( interpreterModel.FirstName, interpreterModel.LastName, brokerId, interpreterModel.Email, interpreterModel.PhoneNumber, interpreterModel.OfficialInterpreterId ); _dbContext.Add(newInterpreter); return(newInterpreter); } else { throw new InvalidApiCallException(ErrorCodes.InterpreterOfficialIdAlreadySaved); } default: return(null); } if (updateInformation) { interpreter.IsActive = interpreterModel.IsActive; if (!string.IsNullOrWhiteSpace(interpreterModel.FirstName)) { interpreter.FirstName = interpreterModel.FirstName; } if (!string.IsNullOrWhiteSpace(interpreterModel.LastName)) { interpreter.LastName = interpreterModel.LastName; } if (!string.IsNullOrWhiteSpace(interpreterModel.Email)) { interpreter.Email = interpreterModel.Email; } if (!string.IsNullOrWhiteSpace(interpreterModel.PhoneNumber)) { interpreter.PhoneNumber = interpreterModel.PhoneNumber; } if (!string.IsNullOrWhiteSpace(interpreterModel.OfficialInterpreterId)) { if (_interpreterService.IsUniqueOfficialInterpreterId(interpreterModel.OfficialInterpreterId, brokerId, interpreter.InterpreterBrokerId)) { interpreter.OfficialInterpreterId = interpreterModel.OfficialInterpreterId; } else { throw new InvalidApiCallException(ErrorCodes.InterpreterOfficialIdAlreadySaved); } } } return(interpreter); }