private static BaseCustomerDto GetCustomer(Domain.Customer.Customer customer) { var address = customer.Address; var addressDto = new CustomerAddressDto { Street = address.Street, City = address.City, ZipCode = address.ZipCode, Number = address.Number }; return(customer switch { MrGreenCustomer mrGreenCustomer => new MrGreenCustomerDto { Id = mrGreenCustomer.Id, FirstName = mrGreenCustomer.FirstName, LastName = mrGreenCustomer.LastName, PersonalNumber = mrGreenCustomer.PersonalNumber, Address = addressDto }, RedBetCustomer redBetCustomer => new RedBetCustomerDto { Id = redBetCustomer.Id, FirstName = redBetCustomer.FirstName, LastName = redBetCustomer.LastName, FavoriteFootballTeam = redBetCustomer.FavoriteFootballClub, Address = addressDto }, _ => throw new InvalidOperationException("Customer Type is not supported") });
public CustomerAddressDto UpdateCustomerAddress(CustomerAddressDto model) { try { var customerAddressesList = _context.customersaddresses.Where(x => x.CustomerId == model.AddressCustomerId).ToList(); if (customerAddressesList.Count == 0 || !customerAddressesList.Any(x => x.IsPrimary == true)) { model.IsPrimary = true; } else if (model.IsPrimary) { foreach (var address in customerAddressesList) { address.IsPrimary = false; _context.Entry(address).State = System.Data.Entity.EntityState.Modified; _context.SaveChanges(); } } var oldCustomerAddress = _context.customersaddresses.FirstOrDefault(x => x.CustomerAddressID == model.CustomerAddressID); var updatedCustomerAddress = Mapper.Map <customersaddress>(model); updatedCustomerAddress.Modified = DateTime.Now; updatedCustomerAddress.ModifiedBy = model.ModifiedBy; updatedCustomerAddress.Created = oldCustomerAddress.Created; updatedCustomerAddress.CreatedBy = oldCustomerAddress.CreatedBy; updatedCustomerAddress.CustomerId = model.AddressCustomerId; updatedCustomerAddress.EmailAddress = model.customerEmailAddress; updatedCustomerAddress.Country = Convert.ToInt32(model.SelectedCountryId); _context.Entry(oldCustomerAddress).CurrentValues.SetValues(updatedCustomerAddress); _context.SaveChanges(); return(model); } catch (DbEntityValidationException ex) { var errorMsg = EisHelper.ParseDbEntityValidationException(ex); _logger.LogError(LogEntryType.CustomerService, errorMsg, ex.StackTrace); throw ex; } catch (Exception ex) { _logger.LogError(LogEntryType.CustomerService, EisHelper.GetExceptionMessage(ex), ex.StackTrace); throw ex; } }
public CustomerAddressDto CreateOrUpdateCustomerAddress(CustomerAddressDto dto, int RequestUserId, string TokenKey) { try { CheckAuthentication(RequestUserId, TokenKey); #region Empty Control if (dto.CustomerId.IsNullOrEmpty()) { throw new RequestWarningException(ErrorTypeEnum.WarningException, ExceptionCodeHelper.CannotEmptyField, ExceptionMessageHelper.CannotEmptyField("Customer Id")); } if (dto.AddressTitle.IsNullOrEmpty()) { throw new RequestWarningException(ErrorTypeEnum.WarningException, ExceptionCodeHelper.CannotEmptyField, ExceptionMessageHelper.CannotEmptyField("Address Title")); } #endregion var data = GetAllCachedData <CustomerAddressDto>().ToList(); var entity = dto.ConvertTo <CustomerAdressEntitiy>(); var conn = Db.CreateConnection(true); if (dto.Id > 0) { entity.UpdateUser = RequestUserId; entity.UpdateDate = DateTimeHelper.Now; conn.Update(entity, Db._DbTransaction); data.RemoveAt(data.FindIndex(q => q.Id == entity.Id)); } else { int Id = conn.Insert(entity, Db._DbTransaction).ToInt(); entity = conn.Get <CustomerAdressEntitiy>(Id); } var result = entity.ConvertTo <CustomerAddressDto>(); data.Add(result); FillCacheData(data); return(result); } catch (KnownException ex) { throw ex; } catch (Exception ex) { Logger.AddLog(LogTypeEnum.Error, "CustomerManager.CreateOrUpdateCustomerAddress", RequestUserId, ex.Message, dto.ToJson(), ex); throw new KnownException(ErrorTypeEnum.UnexpectedExeption, ex.Message, ex); } }
public SingleResult <long> InsertCustomerAddress_UI(CustomerAddressDto addressdto) { try { var userId = ClaimPrincipalFactory.GetUserId(User); var customerId = _repository.Customer.FindByCondition(c => c.UserId == userId).Select(c => c.Id) .FirstOrDefault(); if (customerId == 0) { return(SingleResult <long> .GetFailResult("مشتری یافت نشد")); } var address = _mapper.Map <CustomerAddress>(addressdto); address.CustomerId = customerId; address.CuserId = userId; address.Cdate = DateTime.Now.Ticks; _repository.CustomerAddress.Create(address); if (address.DefualtAddress.HasValue && address.DefualtAddress.Value) { var addresslist = _repository.CustomerAddress.FindByCondition(c => c.CustomerId == customerId && c.Ddate == null && c.DaDate == null && c.DefualtAddress == true) .FirstOrDefault(); if (addresslist != null) { addresslist.DefualtAddress = false; addresslist.Mdate = DateTime.Now.Ticks; addresslist.MuserId = userId; _repository.CustomerAddress.Update(addresslist); } } _repository.Save(); return(SingleResult <long> .GetSuccessfulResult(address.Id)); } catch (Exception e) { _logger.LogError(e.Message, addressdto); return(SingleResult <long> .GetFailResult(e.Message)); } }
public ActionResult SaveAddress(CustomerAddressDto model) { if (!ModelState.IsValid) { var errors = ModelState.Values.SelectMany(e => e.Errors.Select(x => x.ErrorMessage)); ModelState.AddModelError("", string.Join("<br/>", errors)); return(View("Edit", model)); } // save the message template model.ModifiedBy = User.Identity.Name; if (model.CustomerAddressID == -1) { model = _customerService.CreateCustomerAddress(model); } else { model = _customerService.UpdateCustomerAddress(model); } TempData["Message"] = "Changes have been successfully saved!"; return(RedirectToAction("edit", new { id = model.AddressCustomerId })); }