private IEnumerable<Outlet> ConstructDomainEntities(IEnumerable<ShipToAddressImport> entities)
        {
            var newOutletAddresses = new List<Outlet>();
           
            foreach (var entity in entities)
            {
                var outlet = _costCentreRepository.GetByCode(entity.OutletCode, CostCentreType.Outlet, true) as Outlet;
                if (outlet != null)
                {
                    if(outlet.ShipToAddresses.Any())
                        outlet.ShipToAddresses.Clear();
                    var shipping = new ShipToAddress(Guid.NewGuid())
                                       {
                                           Description = entity.Description,
                                           Name = entity.Description,
                                           Code = entity.Code,
                                           PhysicalAddress = entity.PhysicalAddress,
                                           PostalAddress = entity.PostalAddress,
                                           Latitude = entity.Latitude != null ? decimal.Parse(entity.Latitude) : 0,
                                           Longitude = entity.Longitude != null ? decimal.Parse(entity.Longitude) : 0

                                       };
                    outlet.AddShipToAddress(shipping);
                     newOutletAddresses.Add(outlet);
                }
                else
                {
                    if (!_failedImpoprts.Any(p => p.Equals(entity.OutletCode, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        _failedImpoprts.Add(entity.OutletCode);
                    }
                }
            }
            return newOutletAddresses;
        }
 public ShipToAddressDTO Map(ShipToAddress address)
 {
     if (address == null) return null;
     return Mapper.Map<ShipToAddress, ShipToAddressDTO>(address);
 }
示例#3
0
 protected Outlet CreateOutlet(Guid outCategory, Guid outType, Guid distrib, Guid route, Guid pricingTier, string outletName, Guid vatClass, string code, Guid discountGroup, float longitude=0F, float latitude =0F,Guid? specialtierId=null)
 {
     Outlet outlet = _costCentreFactory.CreateCostCentre(Guid.NewGuid(), CostCentreType.Outlet, _costCentreRepository.GetById(distrib)) as Outlet;
     outlet._SetStatus(EntityStatus.Active);
     outlet.Route = _routeRepository.GetById(route);
     outlet.OutletCategory = _outletCategoryRepository.GetById(outCategory);
     outlet.OutletType = _outletTypeRepository.GetById(outType);
     outlet.Name = outletName;// "Kibatet Estate Dispensary";
     if (discountGroup != Guid.Empty)
         outlet.DiscountGroup = _discountGroupRepository.GetById(discountGroup);
    // outlet.outLetCode = code;
     outlet.CostCentreCode = code;
     outlet.Latitude = latitude.ToString();
     outlet.Longitude = longitude.ToString();
         outlet.VatClass = _vatClassRepository.GetById(vatClass);
     outlet.OutletProductPricingTier = _ProductPricingTierRepository.GetById(pricingTier);
     if (specialtierId != null)
         outlet.SpecialPricingTier = _ProductPricingTierRepository.GetById(specialtierId.Value);
     var shipTo1 = new ShipToAddress(Guid.NewGuid())
         {
             Name =outletName +  "ShipTo1",
             PhysicalAddress = "Address1",
             PostalAddress = "PO Box 1",
         };
     var shipTo2 = new ShipToAddress(Guid.NewGuid())
     {
         Name = outletName + "ShipTo2",
         PhysicalAddress = "Address2",
         PostalAddress = "PO Box 2",
     };
     outlet.AddShipToAddress(shipTo1);
     outlet.AddShipToAddress(shipTo2);
     _costCentreRepository.Save(outlet);
     return outlet;
 }
示例#4
0
 public void AddShipToAddress (ShipToAddress address)
 {
     _shipToAddresses.Add(address);
 }
        public HttpResponseMessage OutletUpdate(OutletItem outletItem)
        {
            var response = new ResponseBool { Success = false };
            try
            {
                Outlet outlet = _outletRepository.GetById(outletItem.MasterId) as Outlet;
                outlet.Route = _routeRepository.GetById(outletItem.RouteMasterId);
                outlet.Name = outletItem.Name;
                outlet.OutletCategory = _outletCategoryRepository.GetById(outletItem.OutletCategoryMasterId);
                outlet.OutletType = _outletTypeRepository.GetById(outletItem.OutletTypeMasterId);
                outlet.OutletProductPricingTier =
                    _productPricingTierRepository.GetById(outletItem.OutletProductPricingTierMasterId);
                outlet.CostCentreCode = outletItem.outLetCode;
                outlet.CostCentreCode = outletItem.outLetCode;
                outlet.Latitude = outletItem.Latitude;
                outlet.Longitude = outletItem.Longitude;
                outlet._Status = (EntityStatus)outletItem.StatusId;
                outlet.ShipToAddresses.Clear();
                foreach (var address in outletItem.ShippingAddresses)
                {
                    var shipToAddress = new ShipToAddress(address.MasterId)
                    {
                        Name = address.Name,
                        PhysicalAddress = address.PhysicalAddress,
                        PostalAddress = address.PostalAddress,
                        Longitude = address.Longitude ?? 0,
                        Latitude = address.Latitude ?? 0,
                        Description = address.Description,
                        _Status = (EntityStatus)address.EntityStatus,

                    };
                    outlet.AddShipToAddress(shipToAddress);
                }
                try
                {
                    outlet.VatClass = _vatClassRepository.GetById(outletItem.OutletVATClassMasterId);
                }
                catch //cn: VATClass is removed or some other error
                {
                    outlet.VatClass = null;
                }
                try
                {
                    outlet.DiscountGroup = _discountGroupRepository.GetById(outletItem.OutletDiscountGroupMasterId);
                }
                catch //cn: VATClass is removed or some other error
                {
                    outlet.DiscountGroup = null;
                }

                _costCentreRepository.Save(outlet);
                response.Success = true;
                response.ErrorInfo = "Successfully updated outlet " + outlet.Name;
            }
            catch (DomainValidationException dve)
            {
                string errorMsg = dve.ValidationResults.Results.Aggregate("Error: Invalid outlet fields.\n",
                                                                          (current, msg) =>
                                                                          current + ("\t- " + msg.ErrorMessage + ".\n"));
                response.ErrorInfo = errorMsg;
                _log.Error(errorMsg, dve);
            }
            catch (Exception ex)
            {
                response.ErrorInfo = "Error: An error occurred when updating the outlet.";
                _log.Error("Error: An error occurred when updating the outlet.", ex);
            }
            return Request.CreateResponse(HttpStatusCode.OK, response);

        }