public void Create(CreateClientServiceModel model) { if (string.IsNullOrEmpty(model.EGN) || string.IsNullOrEmpty(model.Email) || string.IsNullOrEmpty(model.FirstName) || string.IsNullOrEmpty(model.LastName) || string.IsNullOrEmpty(model.PhoneNumber)) { throw new ArgumentException("Invalid Input data"); } if (data.Clients.Any(x => x.EGN == model.EGN)) { throw new ArgumentException("Cannot Insert car with Same VIN"); } var client = new Client() { FirstName = model.FirstName, LastName = model.LastName, EGN = model.EGN, PhoneNumber = model.PhoneNumber, Email = model.Email }; this.data.Add(client); this.data.SaveChanges(); }
public IActionResult Add(CreateClientViewModel model) { if (!ModelState.IsValid) { return(RedirectToAction("Error", "Home")); } try { var createModel = new CreateClientServiceModel() { FirstName = model.FirstName, LastName = model.LastName, EGN = model.EGN, PhoneNumber = model.PhoneNumber, Email = model.Email }; this.client.Create(createModel); return(this.RedirectToAction("All")); } catch (Exception ex) { LogExceptionWithMessage(ex); ViewBag.Section = "error"; return(View()); } }
public async Task <IActionResult> Save(ClientRequestModel request) { var sellerClaim = this.User.Claims.FirstOrDefault(x => x.Type == AccountConstants.Claims.OrganisationIdClaim); if (request.Id.HasValue) { var serviceModel = new UpdateClientServiceModel { Id = request.Id, Name = request.Name, Email = request.Email, CommunicationLanguage = request.CommunicationLanguage, ClientOrganisationId = request.OrganisationId, Language = CultureInfo.CurrentCulture.Name, Username = this.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value, OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value) }; var validator = new UpdateClientModelValidator(); var validationResult = await validator.ValidateAsync(serviceModel); if (validationResult.IsValid) { var client = await this.clientsService.UpdateAsync(serviceModel); return(this.StatusCode((int)HttpStatusCode.OK, new { Id = client.Id })); } throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity); } else { var serviceModel = new CreateClientServiceModel { Name = request.Name, Email = request.Email, CommunicationLanguage = request.CommunicationLanguage, ClientOrganisationId = request.OrganisationId, Language = CultureInfo.CurrentCulture.Name, Username = this.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value, OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value) }; var validator = new CreateClientModelValidator(); var validationResult = await validator.ValidateAsync(serviceModel); if (validationResult.IsValid) { var client = await this.clientsService.CreateAsync(serviceModel); return(this.StatusCode((int)HttpStatusCode.Created, new { Id = client.Id })); } throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity); } }
public async Task <ClientServiceModel> CreateAsync(CreateClientServiceModel serviceModel) { var client = new Infrastructure.Clients.Entities.Client { Name = serviceModel.Name, Email = serviceModel.Email, Language = serviceModel.CommunicationLanguage, OrganisationId = serviceModel.ClientOrganisationId.Value, SellerId = serviceModel.OrganisationId.Value }; this.context.Clients.Add(client.FillCommonProperties()); await this.context.SaveChangesAsync(); return(await this.GetAsync(new GetClientServiceModel { Id = client.Id, Language = serviceModel.Language, OrganisationId = serviceModel.OrganisationId, Username = serviceModel.Username })); }