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);
        }
Beispiel #2
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);
        }