Example #1
0
        public PrePlanning ReturnPrePlanningDefaults_Update()
        {
            PrePlanning generalPrePlanning = new PrePlanning(_prePlanningId_Update, _agencyCode, _branchId, _projectName, _projectNature, _projectTypeId
                                                             , _projectDescription, _insideKSA, _statusId, _duration, _durationInDays, _durationInMonths, _durationInYears, _yearQuarterId);

            return(generalPrePlanning);
        }
Example #2
0
        public async Task <PrePlanning> UpdateAsync(PrePlanning prePlanning)
        {
            _context.PrePlannings.Update(prePlanning);
            await _context.SaveChangesAsync();

            return(prePlanning);
        }
Example #3
0
        public async Task <PrePlanningModel> CreateAsync(PrePlanningModel model)
        {
            Check.ArgumentNotNull(nameof(model), model);
            PrePlanning planning;
            await _prePlanningDomainService.CheckNameExist(model.ProjectName, model.BranchId, model.YearQuarterId, model.AgencyCode, model.PrePlanningId);

            if (model.PrePlanningId == 0)
            {
                planning = new PrePlanning(model.PrePlanningId, model.AgencyCode, model.BranchId, model.ProjectName, model.ProjectNature, model.ProjectTypeId, model.ProjectDescription, model.InsideKSA, (int)Enums.PrePlanningStatus.UnderUpdate, model.Duration, model.DurationInDays, model.DurationInMonths, model.DurationInYears, model.YearQuarterId);
                planning.IsDurationValid();
                planning.AddtAreasCountriesTypes(model.PrePlanningAreaIDs, model.InsideKSA, model.PrePlanningCountriesIDs, model.ProjectTypesIDs);
                planning = await _genericCommandRepository.CreateAsync <PrePlanning>(planning);
            }
            else
            {
                planning = await _prePlanningQueries.FindByIdForEdit(model.PrePlanningId);

                if (planning.StatusId == (int)Enums.PrePlanningStatus.Pending || planning.StatusId == (int)Enums.PrePlanningStatus.Rejected)
                {
                    throw new UnHandledAccessException();
                }
                planning.Update(model.AgencyCode, model.ProjectName, model.ProjectNature, model.ProjectDescription, model.InsideKSA, (int)Enums.PrePlanningStatus.UnderUpdate, model.Duration, model.DurationInDays, model.DurationInMonths, model.DurationInYears, model.YearQuarterId);
                planning.IsDurationValid();
                planning = planning.UpdatetAreasCountriesTypes(model.PrePlanningAreaIDs, model.InsideKSA, model.PrePlanningCountriesIDs, model.ProjectTypesIDs);
                _genericCommandRepository.Update <PrePlanning>(planning);
            }
            await _genericCommandRepository.SaveAsync();

            model.PrePlanningId = planning.PrePlanningId;
            return(model);
        }
Example #4
0
        public async Task Approve(int planningId, string verificationCode)
        {
            Check.ArgumentNotNullOrEmpty(nameof(planningId), planningId.ToString());
            PrePlanning planning = await _prePlanningQueries.FindById(planningId);

            if (planning.StatusId != (int)Enums.PrePlanningStatus.Pending)
            {
                throw new UnHandledAccessException();
            }
            await CheckForVerificationCode(planningId, verificationCode, (int)Enums.VerificationType.PrePlanning);

            planning.UpdateStatus(Enums.PrePlanningStatus.Approved, "");
            NotificationArguments NotificationArguments = new NotificationArguments
            {
                BodyEmailArgs    = new object[] { "", planning.ProjectName },
                SubjectEmailArgs = new object[] { },
                PanelArgs        = new object[] { planning.ProjectName },
                SMSArgs          = new object[] { "", planning.ProjectName }
            };
            MainNotificationTemplateModel approveTender = new MainNotificationTemplateModel(NotificationArguments, $"PrePlanning/Details?id={Util.Encrypt(planning.PrePlanningId)}", NotificationEntityType.prePlanning, planning.PrePlanningId.ToString(), planning.BranchId);
            await _notificationAppService.SendNotificationForBranchUsers(NotificationOperations.PrePlaningEmployee.OperationsOnPrePlaning.ApprovePreplaning, planning.BranchId, approveTender);

            _genericCommandRepository.Update <PrePlanning>(planning);
            await _genericCommandRepository.SaveAsync();
        }
Example #5
0
        public async Task Reject(int planningId, string rejectionReason)
        {
            Check.ArgumentNotNullOrEmpty(nameof(planningId), planningId.ToString());
            PrePlanning planning = await _prePlanningQueries.FindById(planningId);

            if (rejectionReason.Length > 500)
            {
                throw new BusinessRuleException("سبب الرفض لا يمكن ان يزيد عن 500 حرف.");
            }
            if (planning.StatusId == (int)Enums.PrePlanningStatus.Approved && planning.IsDeleteRequested)
            {
                planning.SetDeActiveRequest(false);
                planning.SetDeleteRejectionReason(rejectionReason);
            }
            else if (planning.StatusId != (int)Enums.PrePlanningStatus.Pending)
            {
                throw new UnHandledAccessException();
            }
            else
            {
                planning.UpdateStatus(Enums.PrePlanningStatus.Rejected, rejectionReason);
            }
            NotificationArguments NotificationArguments = new NotificationArguments
            {
                BodyEmailArgs    = new object[] { "", planning.ProjectName, },
                SubjectEmailArgs = new object[] { },
                PanelArgs        = new object[] { planning.ProjectName },
                SMSArgs          = new object[] { planning.ProjectName }
            };
            MainNotificationTemplateModel approveTender = new MainNotificationTemplateModel(NotificationArguments, $"PrePlanning/Details?id={Util.Encrypt(planning.PrePlanningId)}", NotificationEntityType.prePlanning, planning.PrePlanningId.ToString(), planning.BranchId);
            await _notificationAppService.SendNotificationForBranchUsers(NotificationOperations.PrePlaningEmployee.OperationsOnPrePlaning.RejectPreplaning, planning.BranchId, approveTender);

            _genericCommandRepository.Update <PrePlanning>(planning);
            await _genericCommandRepository.SaveAsync();
        }
Example #6
0
        public async Task <PrePlanning> CreateAsync(PrePlanning prePlanning)
        {
            await _context.PrePlannings.AddAsync(prePlanning);

            await _context.SaveChangesAsync();

            return(prePlanning);
        }
Example #7
0
        public PrePlanning GetPrePlanningDataForReOpen()
        {
            PrePlanning generalPrePlanning = new PrePlanning(_prePlanningId_Update, _agencyCode, _branchId, _projectName, _projectNature, _projectTypeId
                                                             , _projectDescription, _insideKSA, 4, _duration, _durationInDays, _durationInMonths, _durationInYears, _yearQuarterId);

            generalPrePlanning.SetDeActiveRequest(true);
            return(generalPrePlanning);
        }
Example #8
0
        public async Task ReOpenForCancelation(int planningId)
        {
            Check.ArgumentNotNullOrEmpty(nameof(planningId), planningId.ToString());
            PrePlanning planning = await _prePlanningQueries.FindById(planningId);

            if (planning.StatusId != (int)Enums.PrePlanningStatus.Approved && planning.IsDeleteRequested && !string.IsNullOrEmpty(planning.DeleteRejectionReason))
            {
                throw new UnHandledAccessException();
            }
            planning.RemoveCancelationRejectReason();

            _genericCommandRepository.Update <PrePlanning>(planning);
            await _genericCommandRepository.SaveAsync();
        }
Example #9
0
        public async Task ReOpen(int planningId)
        {
            Check.ArgumentNotNullOrEmpty(nameof(planningId), planningId.ToString());
            PrePlanning planning = await _prePlanningQueries.FindById(planningId);

            if (planning.StatusId != (int)Enums.PrePlanningStatus.Rejected)
            {
                throw new UnHandledAccessException();
            }
            planning.UpdateStatus(Enums.PrePlanningStatus.UnderUpdate, "");

            _genericCommandRepository.Update <PrePlanning>(planning);
            await _genericCommandRepository.SaveAsync();
        }
Example #10
0
        public async Task <int> Deactivate(int id, bool userRole)
        {
            PrePlanning prePlanning = _context.PrePlannings.Find(id);

            if (prePlanning.StatusId == (int)Enums.PrePlanningStatus.Approved && userRole)
            {
                prePlanning.SetDeActiveRequest(true);
            }
            else
            {
                prePlanning.DeActive();
            }
            _context.PrePlannings.Update(prePlanning);
            return(await _context.SaveChangesAsync());
        }