Exemplo n.º 1
0
        /// <summary> Получить коммерческие предложения по текущему туру тендера </summary>
        /// <param name="tenderData"> Данные тендера </param>
        public List <TenderLotItemOffer> GetTenderRoundOffers(TenderData tenderData)
        {
            List <Task> tasks = new List <Task>();
            List <TenderLotItemOffer> allOffers = new List <TenderLotItemOffer>();

            foreach (TenderLot lot in tenderData.TenderLots)
            {
                foreach (TenderLotItem lotItem in lot.LotItems)
                {
                    Task <HttpResponseMessage> requestResult = HttpClient.GetAsync($"tender/getoffers?uuid={lotItem.TenderItemUuid.ToString().ToUpper()}");
                    TenderLot     tenderLot     = lot;
                    TenderLotItem tenderLotItem = lotItem;
                    tasks.Add(requestResult.ContinueWith(x => FinishInitialization(x, tenderLot, tenderLotItem, allOffers)));
                }
            }
            Task.WaitAll(tasks.ToArray());
Exemplo n.º 2
0
            static void FinishInitialization(Task <HttpResponseMessage> requestResult, TenderLot lot, TenderLotItem lotItem, List <TenderLotItemOffer> allOffers)
            {
                HttpResponseMessage response = requestResult.Result;

                response.EnsureSuccessStatusCode();
                String result = response.Content.ReadAsStringAsync().Result;

                result = Regex.Replace(result, @"(?<![\\])\\(?![bfnrt""\\])", @"\\");
#if DEBUG
                result = JToken.Parse(result).ToString(Formatting.Indented);
#endif
                List <TenderLotItemOffer> offers = null;
                try
                {
                    offers = JsonConvert.DeserializeObject <List <TenderLotItemOffer> >(result);
                    foreach (var item in offers)
                    {
                        foreach (var answer in item.TenderCriteriaAnswers)
                        {
                            answer.TenderLotItemUuid = lotItem.TenderItemUuid;
                            answer.TenderLotItemName = lotItem.Name;
                            lotItem.Offers.Clear();
                            lotItem.Offers.AddRange(offers);
                            answer.TenderLotNo    = lot.LotNumber;
                            answer.SupplierId     = item.SupplierId;
                            answer.SupplierName   = item.SupplierName;
                            answer.SupplierEdrpou = item.Edrpou;
                            if (!String.IsNullOrEmpty(answer.FileUrl))
                            {
                                String queryValue = HttpUtility.ParseQueryString(new Uri(answer.FileUrl).Query).GetValues("uuid").FirstOrDefault();
                                answer.FileUuid = String.IsNullOrEmpty(queryValue) ? null : ((Guid?)new Guid(queryValue));
                            }
                        }
                    }
                    allOffers.AddRange(offers);
                }
                catch (JsonSerializationException ex)
                {
                    var requestRes = JsonConvert.DeserializeObject <RequestResult <List <TenderLotItemOffer> > >(result);
                    if (requestRes.IsSuccess == false)
                    {
                        offers = new List <TenderLotItemOffer>();
                    }
                }
            }