Esempio n. 1
0
        private void MapLots(ICollection <TenderLotCreateDto> lotDtos, Tender tender, IEnumerable <Okpd> existingOkpds)
        {
            tender.Lots.Clear();

            foreach (var dto in lotDtos)
            {
                var lot = new TenderLot
                {
                    Name   = dto.Name,
                    Count  = dto.Count,
                    Price  = dto.Price,
                    Summ   = dto.Summ,
                    Tender = tender
                };

                if (dto.Okpd != null)
                {
                    lot.Okpd = existingOkpds.SingleOrDefault(c => c.Code == dto.Okpd);

                    if (lot.Okpd == null && dto.Okpd.Length > 8)
                    {
                        lot.Okpd = existingOkpds.SingleOrDefault(c => c.Code == dto.Okpd.Substring(0, 8));
                    }
                }

                lot.UpdateChangeInfo();

                tender.Lots.Add(lot);
            }
        }
Esempio n. 2
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());
Esempio n. 3
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>();
                    }
                }
            }