public Response <Model.Shopper> Create(Model.Shopper entity) { IShopperRepository shopperRepository = null; IAddressRepository addressRepository = null; Validator <Model.Shopper> validator = ValidationFactory.CreateValidator <Model.Shopper>("Create"); Validator <Model.Address> validatorAddress = ValidationFactory.CreateValidator <Model.Address>("Create"); try { #region Validation if (!validator.Validate(entity).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validator.Validate(entity)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } if (!validatorAddress.Validate(entity).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validatorAddress.Validate(entity)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } #endregion Validation using (var ctx = new ChickenScratchContext()) { // Set default entity.FromDate = DateTime.UtcNow; entity.LastActivity = DateTime.MinValue; // Create Customer shopperRepository = new ShopperRepository(ctx); shopperRepository.Insert(entity); // Create Adrress addressRepository = new AddressRepository(ctx); addressRepository.Add(entity.Address); shopperRepository.Save(); response.Result = entity; response.Status = ResponseStatus.Success; } return(response); } catch (Exception ex) { throw ex; } }
public Response <Model.Customer> Delete(Model.Customer customer) { ICustomerRepository customerRepository = null; IAddressRepository addressRepository = null; Validator <Model.Customer> validator = ValidationFactory.CreateValidator <Model.Customer>("Delete"); try { #region Validation if (!validator.Validate(customer).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validator.Validate(customer)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } #endregion Validation using (var ctx = new ChickenScratchContext()) { customerRepository = new CustomerRepository(ctx); // Find Customer customer = customerRepository.GetBy(customer); if (customer == null) { response.Validations.Add("Customer", "Customer does not exist"); response.ErrorValue = (Int32)ErrorCode.InvalidCustomerId; return(response); } // Delete Customer customerRepository.Delete(customer); if (customer.Addresses.Count > 0) { addressRepository = new AddressRepository(ctx); // Delete Adrress(es) foreach (Model.Address address in customer.Addresses) { addressRepository.Delete(address); } } customerRepository.Save(); response.Result = customer; response.Status = ResponseStatus.Success; return(response); } } catch (Exception ex) { throw ex; } }
public Response <Model.Customer> Update(Model.Customer customer) { ICustomerRepository customerRepository = null; IAddressRepository addressRepository = null; Validator <Model.Customer> validator = ValidationFactory.CreateValidator <Model.Customer>("Update"); Validator <Model.Address> validatorAddress = ValidationFactory.CreateValidator <Model.Address>("Update"); try { #region Validation if (!validator.Validate(customer).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validator.Validate(customer)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } foreach (Model.Address address in customer.Addresses) { if (!validatorAddress.Validate(address).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validatorAddress.Validate(address)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } } #endregion Validation using (var ctx = new ChickenScratchContext()) { // Set default //customer.FromDate = DateTime.UtcNow; //customer.ToDate = DateTime.UtcNow.AddYears(1); // Create Customer customerRepository = new CustomerRepository(ctx); customerRepository.Update(customer); // Create Adrress addressRepository = new AddressRepository(ctx); addressRepository.Updates(customer.Addresses); customerRepository.Save(); response.Result = customer; response.Status = ResponseStatus.Success; } return(response); } catch (Exception ex) { throw ex; } }
public Response <Model.Customer> Create(Model.Customer customer) { ICustomerRepository customerRepository = null; IAddressRepository addressRepository = null; Validator <Model.Customer> validator = ValidationFactory.CreateValidator <Model.Customer>("Create"); Validator validatorAddress = new ObjectCollectionValidator(typeof(Model.Address), "Create"); try { #region Validation if (!validator.Validate(customer).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validator.Validate(customer)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } if (customer.Addresses.IsNullOrEmpty()) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; response.Validations.Add("Address", "Address must have at least one"); return(response); } else { if (!validatorAddress.Validate(customer.Addresses).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validatorAddress.Validate(customer.Addresses)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } else // Validate Email { foreach (Model.Address address in customer.Addresses) { if (!address.PrimaryEmail.IsNullOrEmpty()) { Validator <Model.Address> valEmail = ValidationFactory.CreateValidator <Model.Address>("Email"); if (!valEmail.Validate(address).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in valEmail.Validate(address)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } } } } } #endregion Validation #region Create using (var ctx = new ChickenScratchContext()) { // Set default customer.Status = "A"; customer.TokenSecret = Guid.NewGuid().ToString(); customer.FromDate = DateTime.UtcNow; customer.ToDate = DateTime.UtcNow.AddYears(1); // Create Customer customerRepository = new CustomerRepository(ctx); customerRepository.Add(customer); // Create Adrress addressRepository = new AddressRepository(ctx); addressRepository.Inserts(customer.Addresses); customerRepository.Save(); response.Result = customer; response.Status = ResponseStatus.Success; } #endregion Create return(response); } catch (Exception ex) { throw ex; } }
//public Response<List<Model.Address>> Create(IEnumerable<Model.Address> addresses) //{ // Response<List<Model.Address>> response = null; // if (addresses.IsNullOrEmpty()) // { // response = new Response<List<Model.Address>>(); // response.Result = new List<Model.Address>(); // foreach (Model.Address address in addresses) // { // var resp = Create(address); // response.Result.Add(resp.Result); // } // } // return response; //} public Response <Model.Address> Create(Model.Address address) { IAddressRepository addressRepository = null; Validator <Model.Address> validator = ValidationFactory.CreateValidator <Model.Address>("Create"); try { #region Validation if (!validator.Validate(address).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in validator.Validate(address)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } else // Validate Email { if (!address.PrimaryEmail.IsNullOrEmpty()) { Validator <Model.Address> valEmail = ValidationFactory.CreateValidator <Model.Address>("Email"); if (!valEmail.Validate(address).IsValid) { response.Status = ResponseStatus.ErrorValidation; response.ErrorValue = (int)ErrorCode.InvalidData; foreach (var result in valEmail.Validate(address)) { if (!response.Validations.ContainsKey(result.Key)) { response.Validations.Add(result.Key, result.Message); } } return(response); } } } #endregion Validation #region Create using (var ctx = new ChickenScratchContext()) { addressRepository = new AddressRepository(ctx); addressRepository.Insert(address); addressRepository.Save(); response.Result = address; response.Status = ResponseStatus.Success; } #endregion Create return(response); } catch (Exception ex) { throw ex; } }