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));
        }
예제 #2
0
        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);
        }