public Delivery Get(string fromDestination, string toDestination, int?packageWeight, string cargoType, int?packageLength, int?packageWidth, int?packageHeight, int?discount)
        {
            if (!packageWeight.HasValue || !packageLength.HasValue || !packageHeight.HasValue || !packageWeight.HasValue)
            {
                return(ReturnError());
            }
            ApiRequestParams apiRequestParams = new ApiRequestParams()
            {
                fromDestination = fromDestination,
                toDestination   = toDestination,
                packageWeight   = packageWeight.Value,
                cargoType       = cargoType,
                recorded        = "false",
                packageHeight   = packageHeight.Value,
                packageLength   = packageLength.Value,
                packageWidth    = packageWidth.Value
            };

            DeliveryData fastest  = Utilities.ShortestPathCalculator.ShortestPath(apiRequestParams, discount, "time");
            DeliveryData cheapest = Utilities.ShortestPathCalculator.ShortestPath(apiRequestParams, discount, "price");

            var delivery = new Delivery()
            {
                best     = fastest,
                cheapest = cheapest,
                fastest  = fastest
            };

            return(delivery);
        }
Пример #2
0
    public DeliveryData[] GetDeliveryTableDataArray(List <Delivery> delivery_list)
    {
        if (tableData == null)
        {
            return(null);
        }
        List <DeliveryData> list = new List <DeliveryData>();

        delivery_list.ForEach(delegate(Delivery data)
        {
            if (data.dId > 0)
            {
                DeliveryData deliveryTableData = GetDeliveryTableData((uint)data.dId);
                if (deliveryTableData != null)
                {
                    list.Add(deliveryTableData);
                }
            }
        });
        if (list.Count == 0)
        {
            return(null);
        }
        return(list.ToArray());
    }
Пример #3
0
        public async Task <string> Create(DeliveryDataCreateModel data)
        {
            string officeDeliveryDataId = null;
            string homeDeliveryDataId   = null;

            if (data.DeliveredToAnOffice)
            {
                officeDeliveryDataId = await this.CreateOfficeDeliveryData(data.OfficeCode, data.OfficeName, data.OfficeAddress, data.OfficeCity, data.OfficeCountry);
            }
            else
            {
                homeDeliveryDataId = await this.CreateHomeDeliveryData(data.Country, data.City, data.PostCode, data.Street, data.StreetNumber, data.District, data.Block, data.Entrance, data.Floor, data.Apartment);
            }

            string customerDataId = await this.CreateCustomerData(data.CustomerName, data.CustomerLastName, data.PhoneNumber, data.Email);

            DeliveryData thisData = new DeliveryData
            {
                Comments             = data.Comments,
                DeliveredToAnOffice  = data.DeliveredToAnOffice,
                OfficeDeliveryDataId = officeDeliveryDataId,
                HomeDeliveryDataId   = homeDeliveryDataId,
                CustomerDataId       = customerDataId
            };

            await this.db.DeliveryData.AddAsync(thisData);

            await this.db.SaveChangesAsync();

            return(thisData.Id);
        }
Пример #4
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            DeliveryData deliveryData = obj as DeliveryData;

            if (deliveryData == null)
            {
                return(false);
            }
            bool flag = id == deliveryData.id && locationNumber == deliveryData.locationNumber && deliveryNumber == deliveryData.deliveryNumber && name == deliveryData.name && type == deliveryData.type && textType == deliveryData.textType && eventID == deliveryData.eventID && fieldMode == deliveryData.fieldMode && difficulty == deliveryData.difficulty && eventFlag == deliveryData.eventFlag && npcID == deliveryData.npcID && npcComment == deliveryData.npcComment && npcClearComment == deliveryData.npcClearComment && clearEventID == deliveryData.clearEventID && clearEventTitle == deliveryData.clearEventTitle && jumpType == deliveryData.jumpType && jumpMapID == deliveryData.jumpMapID && targetPortalID[0] == deliveryData.targetPortalID[0] && targetPortalID[1] == deliveryData.targetPortalID[1] && targetPortalID[2] == deliveryData.targetPortalID[2] && placeName == deliveryData.placeName && enemyName == deliveryData.enemyName && appearQuestId == deliveryData.appearQuestId && appearDeliveryId == deliveryData.appearDeliveryId;

            if (needs.Length == deliveryData.needs.Length)
            {
                for (int i = 0; i < needs.Length; i++)
                {
                    flag = (flag && needs[i].Equals(deliveryData.needs[i]));
                }
            }
            else
            {
                flag = false;
            }
            return(flag);
        }
Пример #5
0
        public int ShowDelivery(DeliveryData deliveryData)
        {
            var byer   = new BuyerInterface();
            var answer = byer.ShowDeliveries(deliveryData);
            int result;

            int.TryParse(answer, out result);
            return(result);
        }
Пример #6
0
        public int AddServiceAccount(string Login, string Password, string ServiceName)
        {
            DeliveryData Service = new DeliveryData {
                Login = Login, Password = Password, ServiceName = ServiceName
            };

            db.DeliveryDatas.Add(Service);
            db.SaveChanges();
            return(1);
        }
Пример #7
0
        public DeliveryData GetDeliveryData()
        {
            var deliveryData = new DeliveryData();
            var IsExist      = DataDeserialize <DeliveryData>(ref deliveryData);

            if (!IsExist)
            {
                deliveryData.DeliveryListInit();
            }
            return(deliveryData);
        }
Пример #8
0
        public decimal GetDelivery(DeliveryData deliveryData)
        {
            decimal price    = default;
            var     delivery = new DeliveryService();
            int     k        = ShowDelivery(deliveryData);

            price = delivery.GetDeliveryPrice(deliveryData, deliveryData.Deliveries[k - 1].Method);
            var logger = new Logger();

            logger.SaveIntoFile("The delivery method was selected as " + deliveryData.Deliveries.ElementAt(k - 1).Method);
            return(price);
        }
Пример #9
0
        public void CreateOrder(DeliveryData deliveryData, OrderData orderData, ProductData productData, Buyer buyer)
        {
            bool isExist = IsExist(orderData, buyer);
            var  answer  = 2;
            var  order   = new OrderUI();

            if (isExist)
            {
                answer = GetResult();
            }
            if (answer == 1)
            {
                var buyerClient = new BuyerInterface();
                buyerClient.ShowOrder(orderData, default, buyer, false);
        private Delivery ReturnError()
        {
            DeliveryData deliv = new DeliveryData()
            {
                success = false
            };

            return(new Delivery()
            {
                best = deliv,
                cheapest = deliv,
                fastest = deliv
            });
        }
Пример #11
0
    public DeliveryData GetDeliveryTableData(uint id)
    {
        if (tableData == null)
        {
            return(null);
        }
        DeliveryData deliveryData = tableData.Get(id);

        if (deliveryData == null)
        {
            Log.TableError(this, id);
            deliveryData      = new DeliveryData();
            deliveryData.name = Log.NON_DATA_NAME;
        }
        return(deliveryData);
    }
        private Delivery MapData(DeliveryData deliveryData, List <ProductLineData> linesData)
        {
            var lines = linesData.Select(x => new ProductLine(
                                             new Product(x.ProductID, x.ProductName, x.ProductWeightInPounds),
                                             x.Amount))
                        .ToList();

            return(new Delivery
                       (deliveryData.DeliveryID,
                       new Address(
                           deliveryData.DestinationStreet,
                           deliveryData.DestinationCity,
                           deliveryData.DestinationState,
                           deliveryData.DestinationZipCode),
                       deliveryData.CostEstimate,
                       lines));
        }
Пример #13
0
        private (DeliveryData deliveryData, List <ProductLineData> linesData) GetRawData(int id)
        {
            using (var connection = new SqlConnection(Settings.ConnectionString))
            {
                string query = @"
                    SELECT *
                    FROM [dbo].[Delivery] d
                    WHERE d.DeliveryID = @ID

                    SELECT l.*, p.WeightInPounds ProductWeightInPounds, p.Name ProductName
                    FROM [dbo].[ProductLine] l
                    INNER JOIN [dbo].[Product] p ON l.ProductID = p.ProductID
                    WHERE l.DeliveryID = @ID";

                SqlMapper.GridReader   reader       = connection.QueryMultiple(query, new { ID = id });
                DeliveryData           deliveryData = reader.Read <DeliveryData>().SingleOrDefault();
                List <ProductLineData> lineData     = reader.Read <ProductLineData>().ToList();

                return(deliveryData, lineData);
            }
        }
        public static void WithDelivery(DeliveryData deliveryData)
        {
            transaction.delivery             = new DeliveryData();
            transaction.delivery.birthday    = deliveryData.birthday;
            transaction.delivery.document    = deliveryData.document;
            transaction.delivery.documentTwo = deliveryData.documentTwo;
            transaction.delivery.mail        = deliveryData.mail;
            transaction.delivery.name        = deliveryData.name;
            transaction.delivery.sex         = deliveryData.sex;

            if (deliveryData.deliveryAddress != null)
            {
                transaction.delivery.deliveryAddress            = new AddressData();
                transaction.delivery.deliveryAddress.city       = deliveryData.deliveryAddress.city;
                transaction.delivery.deliveryAddress.complement = deliveryData.deliveryAddress.complement;
                transaction.delivery.deliveryAddress.country    = deliveryData.deliveryAddress.country;
                transaction.delivery.deliveryAddress.district   = deliveryData.deliveryAddress.district;
                transaction.delivery.deliveryAddress.number     = deliveryData.deliveryAddress.number;
                transaction.delivery.deliveryAddress.state      = deliveryData.deliveryAddress.state;
                transaction.delivery.deliveryAddress.street     = deliveryData.deliveryAddress.street;
            }

            if (deliveryData.deliveryPhone != null && deliveryData.deliveryPhone.Count > 0)
            {
                List <PhoneData> newPhoneList = new List <PhoneData>();
                foreach (var phone in deliveryData.deliveryPhone)
                {
                    PhoneData newPhone = new PhoneData();
                    newPhone.ddd       = phone.ddd;
                    newPhone.ddi       = phone.ddi;
                    newPhone.phone     = phone.phone;
                    newPhone.phoneType = phone.phoneType;
                    newPhoneList.Add(newPhone);
                }

                transaction.delivery.deliveryPhone = newPhoneList;
            }
        }
Пример #15
0
        public void CreateOrder(DeliveryData deliveryData, OrderData orderData, ProductData productData, Buyer buyer)
        {
            bool isContinue   = true;
            var  buyerClient  = new BuyerInterface();
            var  orderService = new OrderService();
            var  delivery     = new DeliveryUI();
            int  id           = GetId(orderData);

            while (isContinue)
            {
                orderData.Orders.Add(orderService.AddOrderItem(productData, buyer, id));
                isContinue = buyerClient.Continue();
            }
            decimal totalPrice    = delivery.GetDeliveryPrice(orderData, buyer);
            decimal deliveryPrice = delivery.GetDelivery(deliveryData);

            delivery.SetDeliveryPrice(orderData, buyer, deliveryPrice);
            totalPrice += deliveryPrice;
            buyerClient.ShowOrder(orderData, totalPrice, buyer, true);
            var logger = new Logger();

            logger.SaveIntoFile("The total order`s price was calculated");
        }
Пример #16
0
        public async Task <DeliveryDataDetailsModel> Get(string id)
        {
            if (!this.db.DeliveryData.Any(dd => dd.Id == id))
            {
                throw new ArgumentException(ErrorMessages.InvalidDeliveryDataId);
            }

            DeliveryData data = await this.db.DeliveryData.FindAsync(id);

            CustomerData customer = await this.db.CustomerData.FindAsync(data.CustomerDataId);

            if (data.DeliveredToAnOffice)
            {
                OfficeDeliveryData office = await this.db.OfficeDeliveryData.FindAsync(data.OfficeDeliveryDataId);

                return(this.db.DeliveryData
                       .Where(dd => dd.Id == id)
                       .Select(dd => new DeliveryDataDetailsModel
                {
                    CustomerName = customer.CustomerName,
                    CustomerLastName = customer.CustomerLastName,
                    PhoneNumber = customer.PhoneNumber,
                    Email = customer.Email,
                    Comments = data.Comments,
                    DeliveredToAnOffice = data.DeliveredToAnOffice,
                    OfficeCode = office.Code,
                    OfficeName = office.Name,
                    OfficeAddress = office.Address,
                    OfficeCity = office.City,
                    OfficeCountry = office.Country
                })
                       .FirstOrDefault());
            }
            else
            {
                HomeDeliveryData home = await this.db.HomeDeliveryData.FindAsync(data.HomeDeliveryDataId);

                return(this.db.DeliveryData
                       .Where(dd => dd.Id == id)
                       .Select(dd => new DeliveryDataDetailsModel
                {
                    CustomerName = customer.CustomerName,
                    CustomerLastName = customer.CustomerLastName,
                    PhoneNumber = customer.PhoneNumber,
                    Email = customer.Email,
                    Country = home.Country,
                    City = home.City,
                    PostCode = home.PostCode,
                    Street = home.Street,
                    StreetNumber = home.StreetNumber,
                    District = home.District,
                    Block = home.Block,
                    Entrance = home.Entrance,
                    Floor = home.Floor,
                    Apartment = home.Apartment,
                    Comments = data.Comments,
                    DeliveredToAnOffice = data.DeliveredToAnOffice,
                })
                       .FirstOrDefault());
            }
        }
Пример #17
0
        private OrderData ProcessOrderImportRow(string[] pieces, string line, int lineNumber)
        {
            OrderData orderData = null;
            if (pieces.Length < minimumSupportedColumnsForOrder)
            {
                AddError(line, lineNumber, "Invalid line - too few columns for ORDER");
            }
            else
            {
                var partyId = pieces[partyIdColumn];
                var firstName = pieces[firstNameColumn];
                var lastName = pieces[lastNameColumn];
                var email = pieces[emailColumn];
                var phone = pieces[phoneColumn];
                var country = pieces[countryColumn];
                var line1 = pieces[addressLine1Column];
                var line2 = pieces[addressLine2Column];
                var city = pieces[cityColumn];
                var stateProvince = pieces[stateProvinceColumn];
                var postalCode = pieces[postalCodeColumn];

                PartyData party;
                var updateParty = false;
                AlternateIdData originatorId = null;
                if (String.IsNullOrEmpty(partyId))
                {
                    party = CreateNewParty(firstName, lastName, country, city, stateProvince, postalCode, email, phone, line1, line2);
                    originatorId = new AlternateIdData("SourceId", Guid.NewGuid().ToString());
                    updateParty = true;
                }
                else
                    party = new PersonData {PartyId = partyId};

               var customerParty = new CustomerPartyData { Id = partyId, UpdateParty = updateParty, Party = party, OriginatorCustomerId = originatorId};
               var deliveryData = new DeliveryData
               {
                   DeliveryMethod = new DeliveryMethodData { DeliveryMethodId = "USPS" },
                   Address = party.Addresses[0],
                   CustomerParty = customerParty
               };
                orderData = new OrderData
                {
                    BillToCustomerParty = customerParty,
                    SoldToCustomerParty = customerParty,
                    Currency = CommerceSettings.DefaultCurrency,
                    Lines = new OrderLineDataCollection(),
                    OrderReference = new OrderReferenceData(),
                    Delivery = new DeliveryDataCollection { deliveryData }
                };

            }
            return orderData;
        }
Пример #18
0
        public async Task <string> Edit(string deliveryDataId, DeliveryDataCreateModel data)
        {
            DeliveryData deliveryData = await this.db.DeliveryData.FindAsync(deliveryDataId);

            if (deliveryData == null)
            {
                throw new ArgumentException(ErrorMessages.InvalidDeliveryDataId);
            }

            deliveryData.Comments = data.Comments;

            CustomerData customerData = await this.db.CustomerData.FindAsync(deliveryData.CustomerDataId);

            customerData.CustomerName     = data.CustomerName;
            customerData.CustomerLastName = data.CustomerLastName;
            customerData.PhoneNumber      = data.PhoneNumber;
            customerData.Email            = data.Email;

            await this.db.SaveChangesAsync();

            if (deliveryData.DeliveredToAnOffice && data.DeliveredToAnOffice)
            {
                OfficeDeliveryData officeData = await this.db.OfficeDeliveryData.FindAsync(deliveryData.OfficeDeliveryDataId);

                officeData.Address = data.OfficeAddress;
                officeData.Name    = data.OfficeName;
                officeData.City    = data.OfficeCity;
                officeData.Country = data.OfficeCountry;
                officeData.Code    = data.OfficeCode;

                await this.db.SaveChangesAsync();
            }
            else if (!deliveryData.DeliveredToAnOffice && !data.DeliveredToAnOffice)
            {
                HomeDeliveryData homeData = await this.db.HomeDeliveryData.FindAsync(deliveryData.HomeDeliveryDataId);

                homeData.PostCode     = data.PostCode;
                homeData.City         = data.City;
                homeData.Country      = data.Country;
                homeData.District     = data.District;
                homeData.Street       = data.Street;
                homeData.StreetNumber = data.StreetNumber;
                homeData.Block        = data.Block;
                homeData.Entrance     = data.Entrance;
                homeData.Floor        = data.Floor;
                homeData.Apartment    = data.Apartment;

                await this.db.SaveChangesAsync();
            }
            else if (!deliveryData.DeliveredToAnOffice && data.DeliveredToAnOffice)
            {
                deliveryData.DeliveredToAnOffice = data.DeliveredToAnOffice;

                HomeDeliveryData homeData = await this.db.HomeDeliveryData.FindAsync(deliveryData.HomeDeliveryDataId);

                this.db.HomeDeliveryData.Remove(homeData);

                OfficeDeliveryData newData = new OfficeDeliveryData
                {
                    Address = data.OfficeAddress,
                    Name    = data.OfficeName,
                    City    = data.OfficeCity,
                    Country = data.OfficeCountry,
                    Code    = data.OfficeCode
                };

                await this.db.OfficeDeliveryData.AddAsync(newData);

                await this.db.SaveChangesAsync();

                deliveryData.OfficeDeliveryDataId = newData.Id;
            }
            else
            {
                deliveryData.DeliveredToAnOffice = data.DeliveredToAnOffice;

                OfficeDeliveryData officeData = await this.db.OfficeDeliveryData.FindAsync(deliveryData.OfficeDeliveryDataId);

                this.db.OfficeDeliveryData.Remove(officeData);

                HomeDeliveryData newData = new HomeDeliveryData
                {
                    PostCode     = data.PostCode,
                    City         = data.City,
                    District     = data.District,
                    Street       = data.Street,
                    StreetNumber = data.StreetNumber,
                    Block        = data.Block,
                    Floor        = data.Floor,
                    Apartment    = data.Apartment
                };

                await this.db.HomeDeliveryData.AddAsync(newData);

                await this.db.SaveChangesAsync();

                deliveryData.HomeDeliveryDataId = newData.Id;
            }

            await this.db.SaveChangesAsync();

            return(deliveryDataId);
        }