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; }
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; }