public static void UpdateCustomer(this Customer customer, CustomerViewModel customerVm) { customer.FirstName = customerVm.FirstName; customer.LastName = customerVm.LastName; customer.IdentityCard = customerVm.IdentityCard; customer.Mobile = customerVm.Mobile; customer.DateOfBirth = customerVm.DateOfBirth; customer.Email = customerVm.Email; customer.UniqueKey = (customerVm.UniqueKey == null || customerVm.UniqueKey == Guid.Empty) ? Guid.NewGuid() : customerVm.UniqueKey; customer.RegistrationDate = (customer.RegistrationDate == DateTime.MinValue ? DateTime.Now : customerVm.RegistrationDate); }
public HttpResponseMessage Register(HttpRequestMessage request, CustomerViewModel customer) { return CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { if (_customersRepository.UserExists(customer.Email, customer.IdentityCard)) { ModelState.AddModelError("Invalid user", "Email or Identity Card number already exists"); response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Customer newCustomer = new Customer(); newCustomer.UpdateCustomer(customer); _customersRepository.Add(newCustomer); _unitOfWork.Commit(); // Update view model customer = Mapper.Map<Customer, CustomerViewModel>(newCustomer); response = request.CreateResponse<CustomerViewModel>(HttpStatusCode.Created, customer); } } return response; }); }
public HttpResponseMessage Register(HttpRequestMessage request, CustomerViewModel customerVM) { return CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadGateway, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { if (_customersRepository.FindBy(c => c.Email == customerVM.Email && c.IdentityCard == customerVM.IdentityCard).FirstOrDefault() != null) { ModelState.AddModelError("Invalid user", "Email or Identity Card number already exists"); response = request.CreateResponse(HttpStatusCode.BadGateway, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { var customer = new Customer(); customer.UpdateCustomer(customerVM); _customersRepository.Add(customer); _unitOfWork.Commit(); customerVM = Mapper.Map<Customer, CustomerViewModel>(customer); response = request.CreateResponse(HttpStatusCode.Created, customerVM); } } return response; }); }
public HttpResponseMessage Update(HttpRequestMessage request, CustomerViewModel customer) { return CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Customer _customer = _customersRepository.GetSingle(customer.ID); _customer.UpdateCustomer(customer); _unitOfWork.Commit(); response = request.CreateResponse(HttpStatusCode.OK); } return response; }); }