コード例 #1
0
ファイル: FranchService.cs プロジェクト: dmziryanov/ApecAuto
        public List<SparePartResult> GetPrices(string pn, string brand, bool st)
        {
            if (!Rights.Contains("1")) {
                //TODO: убрать Exception logger Logger.WriteError(CurrentIdentityName + ": " + "Access to webservice Denied", EventLogerID.BLException, EventLogerCategory.WebServiceError);
                throw new Exception("Access Denied");
            }

            List<SparePartResult> result = new List<SparePartResult>();
            /*
             * Если параметр brand - пустая строка и количество производителей на данный артикул > 1, то возвращаем результат
             * по всем найденным производителям
             */
            // Сопоставление сертификата (сертификат 'замаплен' на доменную учетку) и учетки на сайте

            RmsAuto.Acctg.ClientGroup clientGroup = profile.ClientGroup;
            decimal personalMarkup = profile.PersonalMarkup;

            List<string> manufacturers = new List<string>();
            if (string.IsNullOrEmpty(brand))
            {
                manufacturers = PricingSearch.SearchSparePartManufactures(pn, st).Select(s => s.Manufacturer).ToList<string>();
                OperationContext ctx = OperationContext.Current;
                MessageProperties messageProperties = ctx.IncomingMessageProperties;
                RemoteEndpointMessageProperty endpointProperty = messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                SearchSparePartsLogDac.AddWebServiceLog(DateTime.Now, pn, brand, endpointProperty.Address, acctgId);
                if (manufacturers.Count == 0) { return result; }
            }
            else
            {
                manufacturers.Add(brand);
            }

            List<SparePartItem> parts = new List<SparePartItem>();
            foreach (var m in manufacturers)
            {
                var items = PricingSearch.SearchSpareParts(pn, m, st);
                parts.AddRange(items);
            }

            foreach (SparePartItem item in parts)
            {
                SparePartResult res = new SparePartResult()
                {
                    DeliveryDaysMax = item.SparePart.DeliveryDaysMax,
                    DeliveryDaysMin = item.SparePart.DeliveryDaysMin,
                    Manufacturer = item.SparePart.Manufacturer,
                    MinOrderQty = item.SparePart.MinOrderQty,
                    PartDescription = item.SparePart.PartDescription,
                    PartNumber = item.SparePart.PartNumber,
                    Price = item.SparePart.GetFinalSalePrice(clientGroup, personalMarkup),
                    SparePartType = item.ItemType,
                    SupplierID = item.SparePart.SupplierID,
                    QtyInStock = item.SparePart.QtyInStock,
                    PriceDate = item.SparePart.PriceDate
                };
                result.Add(res);
            }

            return result;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: dmziryanov/ApecAuto
        static List<SparePartResult> GetPrices( string pn, string brand, bool st )
        {
            List<SparePartResult> result = new List<SparePartResult>();
            /*
             * Если параметр brand - пустая строка и количество производителей на данный артикул > 1, то возвращаем результат
             * по всем найденным производителям
             */
            // Сопоставление сертификата (сертификат 'замаплен' на доменную учетку) и учетки на сайте
            string acctgId = ServiceAccountDac.GetClientIDByWcfServiceAccount( "RMS-AUTO\\murkin" );
            //подгружаем данные о клиенте
            ClientProfile profile = ClientProfile.Load( acctgId );
            RmsAuto.Acctg.ClientGroup clientGroup = profile.ClientGroup;
            decimal personalMarkup = profile.PersonalMarkup;

            List<string> manufacturers = new List<string>();
            if (string.IsNullOrEmpty( brand ))
            {
                manufacturers = PricingSearch.SearchSparePartManufactures( pn, st ).Select( s => s.Manufacturer ).ToList<string>();
                if (manufacturers.Count == 0) { return result; }
            }
            else
            {
                manufacturers.Add( brand );
            }

            List<SparePartItem> parts = new List<SparePartItem>();
            foreach (var m in manufacturers)
            {
                var items = PricingSearch.SearchSpareParts( pn, m, st );
                parts.AddRange( items );
            }

            foreach (SparePartItem item in parts)
            {
                SparePartResult res = new SparePartResult()
                {
                    DeliveryDaysMax = item.SparePart.DeliveryDaysMax,
                    DeliveryDaysMin = item.SparePart.DeliveryDaysMin,
                    Manufacturer = item.SparePart.Manufacturer,
                    MinOrderQty = item.SparePart.MinOrderQty,
                    PartDescription = item.SparePart.PartDescription,
                    PartNumber = item.SparePart.PartNumber,
                    Price = item.SparePart.GetFinalSalePrice( clientGroup, personalMarkup ),
                    SparePartType = item.ItemType,
                    SupplierID = item.SparePart.SupplierID
                };
                result.Add( res );
            }

            return result;
        }