public async Task AddEditLocalContentTemplate(LocalContentModel model, int branchId)
        {
            IsValidToAddEditLocalContentModel(model);
            Tender tender = await _tenderQueries.FindTenderWithConditionsTemplateById(Util.Decrypt(model.EncryptedTenderId), branchId);

            var templates = await _tenderQueries.FindTenderForLocalContentByTenderId(Util.Decrypt(model.EncryptedTenderId), branchId);

            if (tender == null)
            {
                throw new UnHandledAccessException(Resources.SharedResources.ErrorMessages.YouHaveNoAccess);
            }
            var versionId = await _tenderQueries.GetCurrentTenderActivityVersion(tender.TenderId);

            if (tender.TenderLocalContent == null)
            {
                tender.CreateTenderLocalContent();
            }

            IsValidToAddEditLocalContent(tender, templates, model);
            var tenderAttachments = new List <TenderAttachment>();

            foreach (var item in model.TenderAttachments)
            {
                tenderAttachments.Add(new TenderAttachment(item.Name, item.FileNetReferenceId, item.AttachmentTypeId, null, null));
            }
            if (model.TenderAttachments.Any())
            {
                tender.UpdateLocalContentAttachments(tenderAttachments, _httpContextAccessor.HttpContext.User.UserId());
            }
            if (versionId >= (int)Enums.ActivityVersions.Sprint7Activities)
            {
                var hasInvitation = ((tender.PreQualificationId != null || tender.TenderTypeId == (int)Enums.TenderType.SecondStageTender || tender.TenderTypeId == (int)Enums.TenderType.NewDirectPurchase || tender.TenderTypeId == (int)Enums.TenderType.ReverseBidding ||
                                      tender.TenderTypeId == (int)Enums.TenderType.LimitedTender || tender.TenderTypeId == (int)Enums.TenderType.FrameworkAgreement || tender.TenderTypeId == (int)Enums.TenderType.Competition || tender.TenderTypeId == (int)Enums.TenderType.NationalTransformationProjects) && tender.InvitationTypeId == (int)Enums.InvitationType.Specific) ||
                                    (tender.TenderTypeId == (int)Enums.TenderType.CurrentDirectPurchase && tender.OfferPresentationWayId == (int)Enums.OfferPresentationWayId.TwoSepratedFiles);
                if (!hasInvitation)
                {
                    tender.UpdateTenderStatus(Enums.TenderStatus.Established, "", _httpContextAccessor.HttpContext.User.UserId(), TenderActions.CreateTender);
                }
                else
                {
                    tender.UpdateTenderStatus(Enums.TenderStatus.UnderEstablishing);
                }
            }


            UpdateTenderConditionTemplateStatusId(tender, Enums.TenderConditoinsStatus.LocalContent);
            tender.TenderLocalContent.UpdateTenderLocalContent(tender.TenderId, model.LocalContentMechanismIDs, model.IsApplyProvisionsMandatoryList, model.MinimumBaseline, model.MinimumPercentageLocalContentTarget);
            await _tenderCommands.UpdateAsync(tender);
        }
        private void btnEkle_Click(object sender, EventArgs e)
        {
            Tender currentTender = UICurrentManager.Instance.CurrentTender;

            int[] selectedRows = gridView1.GetSelectedRows();

            List <PozModel> dataSource = grdPozList.DataSource as List <PozModel>;

            if (dataSource == null)
            {
                return;
            }

            PozModel[] selectedRowsItems = dataSource.ToArray();

            foreach (int item in selectedRows)
            {
                PozModel     pozModel     = selectedRowsItems[item];
                MaterialList materialList = new MaterialList();
                materialList.IsPoz         = true;
                materialList.PozOBFId      = pozModel.Id.Value;
                materialList.Tender        = currentTender;
                materialList.TenderGroupId = this.SelectedGroupId;
                materialList.OfferPrice    = pozModel.OfferPrice;

                bool isExist = false;
                foreach (var existmaterialList in currentTender.MaterialList)
                {
                    if (existmaterialList.IsPoz && existmaterialList.PozOBFId == materialList.PozOBFId)
                    {
                        isExist = true;
                    }
                }

                if (!isExist)
                {
                    currentTender.MaterialList.Add(materialList);
                    int index = pozModels.FindIndex(p => p.Id == pozModel.Id);
                    pozModels.RemoveAt(index);
                }
            }

            List <MaterialListModel> models = IhalematikModelBase.GetModels <MaterialListModel, MaterialList>(currentTender.MaterialList.Where(p => p.IsPoz && p.TenderGroupId == this.SelectedGroupId).ToList());

            grdAddedPoz.DataSource = null;
            grdAddedPoz.DataSource = models;
            grdPozList.DataSource  = null;
            grdPozList.DataSource  = pozModels;
        }
        private void IsValidToAddEditDescriptionAndConditionsTemplate(Tender tender, EditConditionTemplateEighthSectionModel model, bool ValidatationFromNextStep = false)
        {
            List <int> listOfSections    = Array.ConvertAll(model.ListOfSections.Split(','), int.Parse).ToList();
            List <int> ListOfTemplateIds = Array.ConvertAll(model.TemplateIds.Split(','), int.Parse).ToList();

            if (tender.ConditionTemplateStageStatusId != (int)Enums.TenderConditoinsStatus.Specifications)
            {
                throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.MustFillPreviousInformation);
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.WorkForce))
            {
                if (ListOfTemplateIds.Count == 1 && ListOfTemplateIds.FirstOrDefault() != (int)Enums.ConditionsTemplateCategory.GeneralSuppliesSupply)
                {
                    if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.WorkforceSpecifications)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.WorkforceSpecifications)))
                    {
                        var value = Resources.TenderResources.DisplayInputs.WorkforceSpecifications;
                        throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                    }
                }
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.Materials))
            {
                if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.MaterialsSpecifications)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.MaterialsSpecifications)))
                {
                    var value = Resources.TenderResources.DisplayInputs.MaterialsSpecifications;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.Equipments))
            {
                if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.EquipmentsSpecifications)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.EquipmentsSpecifications)))
                {
                    var value = Resources.TenderResources.DisplayInputs.EquipmentsSpecifications;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }

            if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.QualitySpecifications)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.QualitySpecifications)))
            {
                var value = Resources.TenderResources.DisplayInputs.QualitySpecifications;
                throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
            }

            if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.SafetySpecifications)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.SafetySpecifications)))
            {
                var value = Resources.TenderResources.DisplayInputs.SafetySpecifications;
                throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
            }
        }
示例#4
0
 public async Task IsValidToApprovePreQualificationFromCommitteeManager(Tender tender, string agencyCode)
 {
     if (tender.AgencyCode != agencyCode)
     {
         throw new AuthorizationException();
     }
     if (tender.TenderStatusId != (int)Enums.TenderStatus.PendingQualificationCommitteeManagerApproval)
     {
         throw new BusinessRuleException(Resources.QualificationResources.ErrorMessages.NotAllaowedToApproveQyalification);
     }
     if (!tender.isValidToApproveByLastOfferPresentationDate())
     {
         throw new BusinessRuleException(Resources.QualificationResources.Messages.CantApprovePresentaionDatePassed);
     }
 }
示例#5
0
        public async Task StartVROTenderOffersFinancialCheckingAsync(string tenderIdString, decimal estimatedValue)
        {
            int tenderId = Util.Decrypt(tenderIdString);

            Check.ArgumentNotNullOrEmpty(nameof(tenderId), tenderId.ToString());
            Tender tender = await _tenderQueries.FindTenderForOpenCheckStageByTenderId(tenderId);

            IsValidStartVROTenderOffersFinancialCheckingAsync(tender);
            if (tender.VRORelatedBranchId == null)
            {
                tender.UpdateEstimatedValue(estimatedValue);
            }
            tender.UpdateTenderStatus(Enums.TenderStatus.VROFinancialCheckingOpening, "", _httpContextAccessor.HttpContext.User.UserId(), TenderActions.StartVROOffersTechnicalChecking);
            await _tenderCommands.UpdateAsync(tender);
        }
示例#6
0
        public async Task <ActionResult <Tender> > PostAnItem([FromBody] Tender item)
        {
            try
            {
                _context.Tenders.Add(item);
                await _context.SaveChangesAsync();

                return(CreatedAtAction(nameof(GetById), new { id = item.Id }, item));
            }
            catch (Exception ex)
            {
                Log.ForContext <TendersController>().Error(ex.Message);
                return(BadRequest(ex.Message));
            }
        }
示例#7
0
 public void AddTender(Tender tender)
 {
     using (var connection = _connectionFactory.GetConnection())
     {
         try
         {
             connection.Insert(tender);
         }
         catch (Exception e)
         {
             Console.WriteLine(e);
             throw;
         }
     }
 }
示例#8
0
 public void EditTender(Tender tender)
 {
     using (var connection = _connectionFactory.GetConnection())
     {
         try
         {
             connection.Update(tender, where : p => p.Id == tender.Id);
         }
         catch (Exception e)
         {
             Console.WriteLine(e);
             throw;
         }
     }
 }
示例#9
0
 public IActionResult Edit(TenderViewModel model)
 {
     if (ModelState.IsValid)
     {
         Tender tender = _tenderRepo.GetTender(model.id);
         tender.Starting_Date = model.Starting_Date;
         tender.Ending_Date   = model.Ending_Date;
         tender.status        = model.status;
         tender.Description   = model.Description;
         tender.Base_price    = model.Base_price;
         Tender updatedTender = _tenderRepo.Update(tender);
         return(RedirectToAction("index"));
     }
     return(View(model));
 }
示例#10
0
        public ViewResult Edit(int id)
        {
            Tender          t         = _tenderRepo.GetTender(id);
            TenderViewModel newTender = new TenderViewModel
            {
                id            = t.Tender_Id,
                Base_price    = t.Base_price,
                Description   = t.Description,
                Ending_Date   = t.Ending_Date,
                Starting_Date = t.Starting_Date,
                status        = t.status,
            };

            return(View(newTender));
        }
示例#11
0
 public async Task IsValidToAcceptQualificationFromCommitteSecrtary(Tender qulaification)
 {
     if (qulaification.PreQualificationCommitteeId == null)
     {
         throw new BusinessRuleException(Resources.QualificationResources.ErrorMessages.NotAllaowedToApproveQyalification);
     }
     else if (qulaification.PreQualificationCommitteeId != _httpContextAccessor.HttpContext.User.SelectedCommittee() || qulaification.AgencyCode != _httpContextAccessor.HttpContext.User.UserAgency())
     {
         throw new BusinessRuleException(Resources.QualificationResources.ErrorMessages.NotAllaowedToApproveQyalification);
     }
     if (qulaification.TenderStatusId != (int)Enums.TenderStatus.QualificationCommitteeApproval)
     {
         throw new BusinessRuleException(Resources.QualificationResources.ErrorMessages.NotAllaowedToApproveQyalification);
     }
 }
示例#12
0
        public void AddQueue(Tender tender)
        {
            if (_channel == null)
            {
                return;
            }

            _channel.QueueDeclare(queue: tender.QueueName,
                                  durable: true,
                                  exclusive: false,
                                  autoDelete: false,
                                  arguments: null);
            _channel.QueueBind(queue: tender.QueueName, exchange: _exchangeName, routingKey: tender.RoutingKey);
            _channel.BasicConsume(queue: tender.QueueName, autoAck: false, consumer: _consumer);
        }
示例#13
0
        //QuotationPrint.aspx.cs
        //public Supplier GetSupplier(string supplierCode)
        //{
        //    return supplierDAO.GetSupplier(supplierCode);
        //}
        //QuotationPrint.aspx.cs

        public Tender GetTenderByCodeAndDate(Supplier supplierPick, int year)
        {
            List <Tender> tList  = tenderDAO.ListTendersBySupplierCode(supplierPick.SupplierCode);
            Tender        tender = null;

            foreach (Tender t in tList)
            {
                if (Convert.ToDateTime(t.DateCreated).Year == year)
                {
                    tender = t;
                    break;
                }
            }
            return(tender);
        }
示例#14
0
        //QuotationPrint.aspx.cs
        public Tender GetTender(string supplierCode)
        {
            Tender        returnTender  = new Tender();
            List <Tender> tenderResults = tenderDAO.ListTendersBySupplierCode(supplierCode);

            if (tenderResults.Count == 0)
            {
                returnTender.DateCreated = new DateTime(2000, 1, 1);
                return(returnTender);
            }
            else
            {
                return(tenderResults.OrderByDescending(x => x.DateCreated).FirstOrDefault());
            }
        }
示例#15
0
        public void ConstructTenderForQualificationUpdate()
        {
            Tender tender = new Tender(1, (int)Enums.TenderType.NewDirectPurchase, "Tender 1", 1, 1, null, new DateTime(2020, 9, 15), new DateTime(2020, 10, 15), new DateTime(2020, 10, 16), new DateTime(2020, 10, 17), (int)Enums.TenderStatus.UnderEstablishing, "123456789", 1, 1, null);

            Assert.Equal("Tender 1", tender.TenderName);
            Assert.Equal((int)Enums.TenderStatus.UnderEstablishing, tender.TenderStatusId);
            Assert.Equal((int)Enums.TenderType.NewDirectPurchase, tender.TenderTypeId);
            Assert.Equal(1, tender.TechnicalOrganizationId);
            Assert.Equal(1, tender.OffersCheckingCommitteeId);
            Assert.Equal("123456789", tender.AgencyCode);
            Assert.Equal(1, tender.BranchId);
            Assert.Equal(1, tender.PostQualificationTenderId);
            Assert.Null(tender.PreQualificationCommitteeId);
            Assert.Equal(ObjectState.Modified, tender.State);
        }
示例#16
0
        // GET: Tenders/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Tender tender = db.tendersDB.Find(id);

            if (tender == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TradeID = new SelectList(db.tradesDB, "ID", "TradeType", tender.TradeID);
            return(View(tender));
        }
示例#17
0
        public async Task <Tender> UpdateAsync(Tender tender)
        {
            try
            {
                Check.ArgumentNotNull(nameof(tender), tender);
                _context.Tenders.Update(tender);
                await _context.SaveChangesAsync();

                return(tender);
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
示例#18
0
        public ActionResult Create([Bind(Include = "ID,CompanyName,Status,PIC,Designation,HP,ContactNo,TradeID,FrequentCompanyName,CreateAccountID")] Tender tender, Tender viewmodel)
        {
            //Tender supermodel = new Tender();
            if (ModelState.IsValid)
            {
                db.tendersDB.Add(tender);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //Tender viewmodel = new Tender();
            //viewmodel.FrequentCompanyName = db.createaccountDB.Include(tm => tm.Trade).Where(tm => tm.TradeID == 2).ToList();
            viewmodel.FrequentCompanyName = db.createaccountDB.Include(tm => tm.Trade).Where(td => td.Rating == 2).ToList();
            viewmodel.SuggestCompanyName  = db.createaccountDB.Include(tm => tm.Trade).ToList();

            //viewmodel.SuggestCompanyName = db.createaccountDB.Include(tm=)

            //var tendersDB = db.tendersDB.Include(t => t.Trade);
            //return View(tendersDB.ToList());
            ViewBag.TradeID = new SelectList(db.tradesDB, "ID", "TradeType", tender.TradeID);
            return(View(viewmodel));



            /*
             *
             * if (ModelState.IsValid)
             * {
             *  db.tendersDB.Add(tender);
             *  db.SaveChanges();
             *  return RedirectToAction("Index");
             * }
             *
             * //var CreateAccsDB = db.createaccountDB.Include(tm => tm.Trade);
             *
             * //List<CreateAccount> AllCompanyName = new List<CreateAccount>();
             *
             * List<CreateAccount> AllCompanyName = db.createaccountDB.Include(tm=>tm.TradeID).Where(tm => tm.TradeID == 2).ToList();
             *
             * ViewBag.FrequentCompanyName = AllCompanyName.Where(tm => tm.Frequency == 2).ToList();
             *
             * ViewBag.SuggestCompanyName = AllCompanyName.Where(tm => tm.Rating == 3).ToList();
             *
             * ViewBag.TradeID = new SelectList(db.tradesDB, "ID", "TradeType", tender.TradeID);
             * ViewBag.createaccountID = new SelectList(db.createaccountDB, "ID", "CompanyName", tender.CreateAccountID);
             * return View(tender);
             */
        }
        private void IsValidToAddEditPreparingOffersTemplate(Tender tender, EditConditionTemplateThridSectionModel model, bool ValidatationFromNextStep = false)
        {
            if (!(tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.PreparteOffers ||

                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.EvaluateOffers ||
                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.ContractingRequirments ||
                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.TechnicalDeclerations ||
                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.Specifications ||
                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.LocalContent
                  ))
            {
                throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.MustFillPreviousInformation);
            }


            if ((!ValidatationFromNextStep && (model?.MaxTimeToAnswerQuestions ?? 0) <= 0) || (ValidatationFromNextStep && (tender.TenderConditionsTemplate?.MaxTimeToAnswerQuestions ?? 0) <= 0))
            {
                var value = Resources.TenderResources.DisplayInputs.MaxTimeToAnswerQuestions;
                throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
            }
            if ((!ValidatationFromNextStep && !(model?.HideTechnicalDocumentSections ?? true)) || (ValidatationFromNextStep && !(tender.TenderConditionsTemplate?.HideTechnicalDocumentSections ?? true)))
            {
                if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.TechnicalOfferDocuments)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.TechnicalOfferDocuments)))
                {
                    var value = Resources.OfferResources.DisplayInputs.TechnicalDocuments;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
            // 63138 uncomment below if you want the finance documents be mandatory
            if (!ValidatationFromNextStep && tender.TenderTypeId != (int)Enums.TenderType.Competition && tender.TenderTypeId != (int)Enums.TenderType.FirstStageTender && tender.TenderTypeId != (int)Enums.TenderType.ReverseBidding)
            {
                if (string.IsNullOrEmpty(model?.FinancialOfferDocuments))
                {
                    var value = Resources.OfferResources.DisplayInputs.FinancialDocuments;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
            if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AlternativeEmailForCommuncation)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AlternativeEmailForCommuncation)))
            {
                var value = Resources.TenderResources.DisplayInputs.AlternativeEmailForCommuncation;
                throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.PleaseCheckTheValueOf + value);
            }
            if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.DocumentStyle)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.DocumentStyle)))
            {
                var value = Resources.TenderResources.DisplayInputs.DocumentStyle;
                throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
            }
        }
        private async Task <bool> PostDataToDB(TenderCore tender)
        {
            Tender tenderRequest = new Tender()
            {
                Location    = tender.Location,
                Pin         = tender.Pin,
                Reporter    = tender.Reporter,
                StartDate   = tender.StartDate,
                State       = tender.State,
                Title       = tender.Title,
                District    = tender.District,
                Description = tender.Description,
                CloseDate   = tender.CloseDate,
                Type        = tender.Location,
                Assignee    = tender.Assignee,
                //Bidding=bidding
            };

            if (string.IsNullOrEmpty(tender.Id.ToString()) || tender.Id == 0)
            {
                var res = await _tenderDBManager.CreateTender(tenderRequest);

                Bidding bidding = new Bidding()
                {
                    TenderId    = res,
                    InititalBid = tender.Bidding.InititalBid,
                    EndTime     = tender.Bidding.EndTime,
                    StartTime   = tender.Bidding.StartTime,
                    ReporteeId  = tender.Bidding.ReporteeId,
                };
                return(await _tenderDBManager.CreateBidding(bidding));
            }
            else
            {
                Bidding biddingRequest = new Bidding()
                {
                    TenderId    = tender.Bidding.TenderId,
                    InititalBid = tender.Bidding.InititalBid,
                    EndTime     = tender.Bidding.EndTime,
                    StartTime   = tender.Bidding.StartTime,
                    ReporteeId  = tender.Bidding.ReporteeId,
                };
                tenderRequest.Id = tender.Id;
                await _tenderDBManager.UpdateTender(tenderRequest);

                return(await _tenderDBManager.UpdateBidding(biddingRequest));
            }
        }
示例#21
0
        public async Task <StatusResult> UpdateTender(int id, Tender tender)
        {
            try
            {
                //updating user info & user detail
                IDictionary <string, string> headerKeyValuePairs = new Dictionary <string, string>();

                var url      = _appSettings.Value.Api + $"api/Tenders/{id}";
                var resultUD = await Utility.UpdateDataAsync <Tender>(url, tender, headerKeyValuePairs);


                if (resultUD.StatusCode == System.Net.HttpStatusCode.Created ||
                    resultUD.StatusCode == System.Net.HttpStatusCode.OK ||
                    resultUD.StatusCode == System.Net.HttpStatusCode.Accepted)
                {
                    var returnedstr = resultUD.Content.ReadAsStringAsync().Result;

                    return(new StatusResult()
                    {
                        Status = Enum.GetName(typeof(StatusText), StatusText.Successful),
                        StatusDetail = "Tender has been modified.",
                        Data = returnedstr,
                        Content = resultUD.Content
                    });
                }
                else
                {
                    return(new StatusResult()
                    {
                        Status = Enum.GetName(typeof(StatusText), StatusText.Error),
                        StatusDetail = "Tender modification failed.",
                        Data = string.Empty,
                        Content = resultUD.Content
                    });
                }
            }
            catch (Exception ex)
            {
                Log.Logger.Error(ex.Message);
                return(new StatusResult()
                {
                    Status = Enum.GetName(typeof(StatusText), StatusText.UnHandledError),
                    StatusDetail = ex.Message,
                    Data = string.Empty,
                    Content = null
                });
            }
        }
        bool IBiddingRepository.IsBidDoneByCompany(ApplicationUser user, Tender t)
        {
            List <Bidding> bids = this.context.Biddings.AsNoTracking()
                                  .Where(n => (n.tender_id.Equals(t) && n.company_id == user.Id.ToString()))
                                  .Select(n => n)
                                  .ToList();

            if (bids.Count == 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
示例#23
0
        public Tender GetGeneralTenderWithLocalContent()
        {
            Tender tender = new Tender("022001000000", 1, (int)Enums.TenderType.NewTender, (int)Enums.InvitationType.Specific, "Tender name test", "tender number", "Purpuse Purpuse Purpuse Purpuse Purpuse Purpuse Purpuse Purpuse ",
                                       null, 1, 1, 1, null, null,
                                       null, null, null, 1, null, 1, 1000, null, 1,
                                       null, null, null, null, null, null, null,
                                       null, null, false, null, null, 500, null);

            tender.UpdateTenderDates(DateTime.Now.Date.AddDays(1), DateTime.Now.Date.AddDays(2), DateTime.Now.Date.AddDays(3), null, null, null, false, null, 1, "building name", "Floar number", "Department Number", null);
            TenderLocalContent tenderLocal = new TenderLocalContent();

            tender.SetTenderLocalContent(tenderLocal);
            tender.CreateTenderLocalContent();

            return(tender);
        }
        public void IsValidToReviewTenderByUnitManager(Tender tender)
        {
            if (tender == null)
            {
                throw new AuthorizationException();
            }
            if (tender.TenderStatusId != (int)Enums.TenderStatus.UnitStaging)
            {
                throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.MustBeInUnitStage);
            }

            if (tender.TenderUnitStatusId != (int)Enums.TenderUnitStatus.WaitingManagerApprove)
            {
                throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.TenderUnitStatusMustBeWaitingManagerApprove);
            }
        }
示例#25
0
        public ActionResult EditTender(String tenderid)
        {
            if (Session["clientid"] == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            var client = Convert.ToInt32(Session["Clientid"].ToString());

            ViewBag.MinList     = new SelectList(db.MinPeriods.ToList(), "id", "Timeperiod");
            ViewBag.CompanyList = new SelectList(db.companies.Where(d => d.ClientId == client).ToList(), "CompanyId", "companyName");
            ViewBag.Menu        = db.get_role(Convert.ToInt32(Session["clientid"]));
            var    id     = int.Parse(securityUtil.Decode(tenderid));
            Tender tender = db.Tenders.Single(m => m.TenderId == id);

            return(View(tender));
        }
示例#26
0
        public async Task OpenTenderByUnitSecretaryAsync(string tenderIdString)
        {
            var    tenderId = Util.Decrypt(tenderIdString);
            Tender tender   = await _tenderQueries.FindTenderWithUnitHistoryById(tenderId);

            _tenderDomainService.IsValidToOpenUnitStageByUnitSecretary(tender);
            TenderUnitStatusesHistory tenderUnitStatusesHistory = new TenderUnitStatusesHistory(comment: "", tenderUnitStatusId: (int)Enums.TenderUnitStatus.UnderUnitReviewLevelOne, estimatedValue: tender.EstimatedValue);
            TenderUnitAssign          tenderUnitAssign          = new TenderUnitAssign(_httpContextAccessor.HttpContext.User.UserId(), tenderId, true, (int)Enums.UnitSpecialistLevel.UnitSpecialistLevelOne);

            tender.TenderUnitStatusesHistories.Add(tenderUnitStatusesHistory);
            tender.SetUnitStatus(Enums.TenderUnitStatus.UnderUnitReviewLevelOne);
            _genericCommandRepository.Update(tender);
            await _genericCommandRepository.CreateAsync(tenderUnitAssign);

            await _genericCommandRepository.SaveAsync();
        }
 public void IsValidToUpdateApproveTenderByUnitSecretaryLevelTwo(Tender tender)
 {
     if (tender == null)
     {
         throw new AuthorizationException();
     }
     if (tender.TenderStatusId != (int)Enums.TenderStatus.UnitStaging)
     {
         throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.MustBeInUnitStage);
     }
     if (tender.TenderUnitStatusId != (int)Enums.TenderUnitStatus.UnderUnitReviewLevelTwo)
     {
         var tenderStatus = Resources.TenderResources.Messages.ResourceManager.GetString(nameof(Enums.TenderUnitStatus.UnderUnitReviewLevelTwo));
         throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.CanNotProceedStatusIs + tenderStatus);
     }
 }
        public void IsValidToUpdateConditionsTemplateSeventhStep(Tender tender, EditConditionTemplateSeventhSectionModel model, bool ValidatationFromNextStep = false)
        {
            var ShowGeneralOnly = tender.TenderActivities.Where(a => a.IsActive == true).Select(a => a.Activity.Activitytemplate.ActivitytemplatId).Distinct().Count() > 1;

            IsValidToUpdateConditionsTemplateThirdStep(tender, null, true);

            var listOfSections = tender.TenderActivities.SelectMany(a => a.Activity.Activitytemplate.ConditionTemplateActivities).Select(a => a.ConditionsTemplateSectionId).Distinct().ToList();

            if (!(tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.EvaluateOffers ||
                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.ContractingRequirments ||
                  tender.ConditionTemplateStageStatusId == (int)Enums.TenderConditoinsStatus.Specifications))
            {
                throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.MustFillPreviousInformation);
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.Outputs) && !ShowGeneralOnly)
            {
                if ((!ValidatationFromNextStep && ((model?.TenderConditionsTemplateOutputs?.Count ?? 0) == 0)) || (ValidatationFromNextStep && (tender.TenderConditionsTemplate?.TenderConditionsTemplateTechnicalOutputs?.Count ?? 0) == 0))
                {
                    var value = Resources.TenderResources.DisplayInputs.TenderConditionsTemplateOutputs;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.ProjectWorkScope))
            {
                if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.ProjectsScope)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.ProjectsScope)))
                {
                    var value = Resources.TenderResources.DisplayInputs.ProjectsScope;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.WorkProgram))
            {
                if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.WorksProgram)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.WorksProgram)))
                {
                    var value = Resources.TenderResources.DisplayInputs.WorksProgram;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
            if (listOfSections.Contains((int)Enums.ConditionsTemplateSections.WorkLocation))
            {
                if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.WorkLocationDetails)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.WorkLocationDetails)))
                {
                    var value = Resources.TenderResources.DisplayInputs.WorkLocationDetails;
                    throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
                }
            }
        }
 public void IsValidToUpdateConditionsTemplateSecondStep(Tender tender, EditConditionTemplateSecondSectionModel model, bool ValidatationFromNextStep = false)
 {
     if (tender == null)
     {
         throw new AuthorizationException();
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.Description)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.Description)))
     {
         var value = Resources.TenderResources.DisplayInputs.TenderDescription;
         throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
     }
     if (model != null && !model.HideCerificatesIDs)
     {
         if ((!ValidatationFromNextStep && ((model?.CerificatesIDs?.Count ?? 0) == 0)) || (ValidatationFromNextStep && (tender.TenderConditionsTemplate?.TemplateCertificates?.Count ?? 0) == 0))
         {
             var value = Resources.TenderResources.DisplayInputs.SystemCertificates;
             throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseSelect + value);
         }
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AgentName)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AgentName)))
     {
         var value = Resources.SharedResources.DisplayInputs.Name;
         throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AgentPhone)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AgentPhone)))
     {
         throw new BusinessRuleException(Resources.CommitteeResources.ErrorMessages.InvalidPhoneNumber);
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AgentFax)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AgentFax)))
     {
         throw new BusinessRuleException(Resources.CommitteeResources.ErrorMessages.InvalidFaxNumber);
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AgentJob)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AgentJob)))
     {
         var value = Resources.SharedResources.DisplayInputs.Job;
         throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AgentEmail)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AgentEmail)))
     {
         throw new BusinessRuleException(Resources.CommitteeResources.ErrorMessages.EmailInvalid);
     }
     if ((!ValidatationFromNextStep && string.IsNullOrEmpty(model?.AgencyDecalration)) || (ValidatationFromNextStep && string.IsNullOrEmpty(tender.TenderConditionsTemplate?.AgencyDecalration)))
     {
         var value = Resources.TenderResources.DisplayInputs.AgencyDecalration;
         throw new BusinessRuleException(Resources.TenderResources.DisplayInputs.PleaseEnterValueOf + value);
     }
 }
示例#30
0
 public async Task CheckCanAddEnquiry(Tender tender, string cr)
 {
     if (tender.TenderTypeId == (int)Enums.TenderType.PreQualification)
     {
         if (tender.LastEnqueriesDate < DateTime.Now)
         {
             throw new BusinessRuleException("لا يمكن اضافة استفسار بعد اخر موعد لتقديم الاستفسار");
         }
     }
     else
     {
         if (!await _tenderQueries.SupplierExistsInInvitationsOrConditionsBookletsByTenderIdAndCR(tender.TenderId, cr))
         {
             throw new BusinessRuleException("Supplier Has No Access To Tender");
         }
     }
 }