コード例 #1
0
        public async Task SubmitApplication(Guid applicationId, ApplyData applyData, FinancialData financialData, Guid submittedBy)
        {
            using (var connection = new SqlConnection(_config.SqlConnectionString))
            {
                await connection.OpenAsync();

                await connection.ExecuteAsync(@"UPDATE Apply
                                                SET ApplicationStatus = @ApplicationStatus, 
                                                    ApplyData = @applyData, 
                                                    AssessorReviewStatus = @AssessorReviewStatus, 
                                                    GatewayReviewStatus = @GatewayReviewStatus, 
                                                    FinancialReviewStatus = @FinancialReviewStatus,
                                                    UpdatedBy = @submittedBy, 
                                                    UpdatedAt = GETUTCDATE() 
                                                WHERE  (Apply.ApplicationId = @applicationId)",
                                              new { applicationId,
                                                    ApplicationStatus = ApplicationStatus.Submitted,
                                                    applyData,
                                                    AssessorReviewStatus  = AssessorReviewStatus.New,
                                                    GatewayReviewStatus   = GatewayReviewStatus.New,
                                                    FinancialReviewStatus = FinancialReviewStatus.New,
                                                    submittedBy });

                await connection.ExecuteAsync(@"insert into FinancialData ([ApplicationId]
               ,[TurnOver],[Depreciation],[ProfitLoss],[Dividends],[IntangibleAssets]
               ,[Assets],[Liabilities],[ShareholderFunds],[Borrowings],[AccountingReferenceDate],[AccountingPeriod],[AverageNumberofFTEEmployees])
                values (@ApplicationId, @TurnOver,@Depreciation, @ProfitLoss,@Dividends,@IntangibleAssets
               ,@Assets,@Liabilities,@ShareholderFunds,@Borrowings,@AccountingReferenceDate,@AccountingPeriod,@AverageNumberofFTEEmployees)",
                                              financialData);

                connection.Close();
            }
        }
コード例 #2
0
        public async Task <Guid> SnapshotApplication(Guid applicationId, Guid snapshotApplicationId, List <ApplySequence> newSequences)
        {
            var currentApplication = await GetApplication(applicationId);

            if (currentApplication != null)
            {
                var newApplyData = new ApplyData
                {
                    Sequences    = newSequences,
                    ApplyDetails = currentApplication.ApplyData?.ApplyDetails
                };

                using (var connection = new SqlConnection(_config.SqlConnectionString))
                {
                    return(await connection.QuerySingleAsync <Guid>(
                               @"INSERT INTO ApplySnapshots (ApplicationId, SnapshotApplicationId, SnapshotDate, OrganisationId, ApplicationStatus, ApplyData, GatewayReviewStatus, AssessorReviewStatus, FinancialReviewStatus, FinancialGrade)
                          OUTPUT INSERTED.[SnapshotApplicationId] 
                          VALUES (@ApplicationId, @snapshotApplicationId, GETUTCDATE(), @OrganisationId, @ApplicationStatus, @newApplyData, @GatewayReviewStatus, @AssessorReviewStatus, @FinancialReviewStatus, @FinancialGrade)",
                               new
                    {
                        currentApplication.ApplicationId,
                        snapshotApplicationId,
                        currentApplication.OrganisationId,
                        currentApplication.ApplicationStatus,
                        newApplyData,
                        currentApplication.GatewayReviewStatus,
                        currentApplication.AssessorReviewStatus,
                        currentApplication.FinancialReviewStatus,
                        currentApplication.FinancialGrade
                    }));
                }
            }

            return(Guid.Empty);
        }
        private async Task NotifyContact(Domain.Entities.Contact contactToNotify, ApplyData applyData, int sequenceNo, CancellationToken cancellationToken)
        {
            var email       = contactToNotify.Email;
            var contactname = contactToNotify.DisplayName;
            var reference   = applyData.Apply.ReferenceNumber;
            var standard    = applyData.Apply.StandardName;

            if (sequenceNo == ApplyConst.ORGANISATION_SEQUENCE_NO)
            {
                var emailTemplate = await _eMailTemplateQueryRepository.GetEmailTemplate(EmailTemplateNames.ApplyEPAOInitialSubmission);

                await _mediator.Send(new SendEmailRequest(email, emailTemplate, new { contactname, reference }), cancellationToken);

                var emailTemplateAlert = await _eMailTemplateQueryRepository.GetEmailTemplate(EmailTemplateNames.ApplyEPAOAlertSubmission);

                await _mediator.Send(new SendEmailRequest(string.Empty, emailTemplateAlert, new { contactname, reference }), cancellationToken);
            }
            else if (sequenceNo == ApplyConst.STANDARD_SEQUENCE_NO)
            {
                var emailTemplate = await _eMailTemplateQueryRepository.GetEmailTemplate(EmailTemplateNames.ApplyEPAOStandardSubmission);

                await _mediator.Send(new SendEmailRequest(email, emailTemplate, new { contactname, reference, standard }), cancellationToken);
            }
            else if (sequenceNo == ApplyConst.ORGANISATION_WITHDRAWAL_SEQUENCE_NO || sequenceNo == ApplyConst.STANDARD_WITHDRAWAL_SEQUENCE_NO)
            {
                var emailTemplate = await _eMailTemplateQueryRepository.GetEmailTemplate(EmailTemplateNames.WithdrawalEPAOSubmission);

                await _mediator.Send(new SendEmailRequest(email, emailTemplate, new { contactname, reference }), cancellationToken);
            }
        }
コード例 #4
0
        public async Task <bool> UpdateModerationStatus(Guid applicationId, ApplyData applyData, string status, string userId)
        {
            using (var connection = _dbConnectionHelper.GetDatabaseConnection())
            {
                var rowsAffected = await connection.ExecuteAsync(@"UPDATE Apply
                                                SET ModerationStatus = ISNULL(@status, ModerationStatus),
                                                    AssessorReviewStatus = CASE
                                                                               WHEN @status = @moderationStatusPass THEN @assessorReviewStatusApproved
                                                                               WHEN @status = @moderationStatusFail THEN @assessorReviewStatusDeclined
                                                                               ELSE AssessorReviewStatus
                                                                           END,
                                                    ApplyData = ISNULL(@applyData, ApplyData),
                                                    UpdatedBy = @userId, 
                                                    UpdatedAt = GETUTCDATE() 
                                                WHERE ApplicationId = @applicationId AND DeletedAt IS NULL",
                                                                 new
                {
                    applicationId,
                    status,
                    applyData,
                    userId,
                    moderationStatusPass         = ModerationStatus.Pass,
                    moderationStatusFail         = ModerationStatus.Fail,
                    assessorReviewStatusApproved = AssessorReviewStatus.Approved,
                    assessorReviewStatusDeclined = AssessorReviewStatus.Declined
                });

                return(rowsAffected > 0);
            }
        }
コード例 #5
0
        private void btnNewApply_Click(object sender, EventArgs e)
        {
            if (btnNewApply.Text == "新增")
            {
                applyControl.ApplyActionState = Apply.ApplyControl.ApplyAction.aaNew;
                SetButtonState(ButtonState.bsNew);
                //显示检查项目录入窗口
                frmNewStudy newStudyForm = new frmNewStudy(_dbQuery);

                newStudyForm.ShowDialog();
                if (newStudyForm.DialogResult == DialogResult.OK)
                {
                    //添加检查项目信息
                    ApplyData appExamItem = new ApplyData();

                    appExamItem.影像类别           = newStudyForm.Modality;
                    appExamItem.申请项目ID         = newStudyForm.ItemID;;
                    appExamItem.申请信息.检查项目      = new JApplyExamItem();
                    appExamItem.申请信息.检查项目.项目名称 = newStudyForm.OrderContent;
                    appExamItem.申请信息.检查项目      = newStudyForm.oneExamItem;
                    applyControl.SetNewExamItem(appExamItem);
                }
            }
            else
            {
                if (applyControl.SaveApply(Apply.ApplyControl.ApplyAction.aaNew) == true)
                {
                    //保存成功了才改变状态
                    SetButtonState(ButtonState.bsNormal);
                    applyControl.ApplyActionState = Apply.ApplyControl.ApplyAction.aaShow;
                }
            }
        }
        private void AddSubmissionInfoToApplyData(ApplyData applyData, int sequenceNo, Domain.Entities.Contact submittingContact)
        {
            var submission = new Submission
            {
                SubmittedAt      = DateTime.UtcNow,
                SubmittedBy      = submittingContact.Id,
                SubmittedByEmail = submittingContact.Email
            };

            if (sequenceNo == 1)
            {
                if (applyData.Apply.InitSubmissions == null)
                {
                    applyData.Apply.InitSubmissions = new List <Submission>();
                }

                applyData.Apply.InitSubmissions.Add(submission);
                applyData.Apply.InitSubmissionsCount     = applyData.Apply.InitSubmissions.Count;
                applyData.Apply.LatestInitSubmissionDate = submission.SubmittedAt;
            }
            else if (sequenceNo == 2)
            {
                if (applyData.Apply.StandardSubmissions == null)
                {
                    applyData.Apply.StandardSubmissions = new List <Submission>();
                }

                applyData.Apply.StandardSubmissions.Add(submission);
                applyData.Apply.StandardSubmissionsCount     = applyData.Apply.StandardSubmissions.Count;
                applyData.Apply.LatestStandardSubmissionDate = submission.SubmittedAt;
            }
        }
        public void Start_assessor_review_returns_false_if_section_already_reviewed(string sectionStatus)
        {
            var applyData = new ApplyData
            {
                Sequences = new List <ApplySequence>
                {
                    new ApplySequence
                    {
                        SequenceNo = 2,
                        Sections   = new List <ApplySection>
                        {
                            new ApplySection
                            {
                                SectionNo = 1,
                                Status    = sectionStatus
                            }
                        }
                    }
                }
            };

            _repository.Setup(x => x.GetApplyData(It.IsAny <Guid>())).ReturnsAsync(applyData);

            var request = new StartAssessorSectionReviewRequest(Guid.NewGuid(), SequenceId, SectionId, Reviewer);

            var result = _handler.Handle(request, new CancellationToken()).GetAwaiter().GetResult();

            result.Should().BeFalse();
        }
コード例 #8
0
        private void SyncSelRowData()
        {
            try
            {
                richTextBox1.Text = "";

                if (listView1.SelectedItems.Count <= 0)
                {
                    return;
                }

                ApplyData applyData = listView1.SelectedItems[0].Tag as ApplyData;
                if (applyData == null)
                {
                    MessageBox.Show("未获取到对应的申请信息。", "提示");
                    return;
                }


                InitApplyReport(applyData.申请ID);
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
 private bool IsSequenceRequired(ApplyData applyData, int sequenceNo)
 {
     // a sequence cannot be considered required if it does not exist in the ApplyData
     return(applyData
            ?.Sequences
            ?.Any(x => x.SequenceNo == sequenceNo && !x.NotRequired) ?? false);
 }
        private void UpdateSequenceAndSectionStatus(ApplyData applyData, int sequenceNo, Dictionary <int, bool?> dictOfRequestedFeedbackAnswered)
        {
            if (applyData.Sequences != null)
            {
                foreach (var sequence in applyData.Sequences.Where(seq => seq.SequenceNo == sequenceNo && !seq.NotRequired))
                {
                    var resubmittedStatues = new string[] { ApplicationSequenceStatus.Submitted, ApplicationSequenceStatus.FeedbackAdded };

                    sequence.Status = resubmittedStatues.Contains(sequence.Status) ? ApplicationSequenceStatus.Resubmitted : ApplicationSequenceStatus.Submitted;

                    // NOTE: Must update Required Sections within too!
                    if (sequence.Sections != null)
                    {
                        foreach (var section in sequence.Sections.Where(sec => !sec.NotRequired))
                        {
                            if (section.Status == ApplicationSectionStatus.Draft)
                            {
                                section.Status = ApplicationSectionStatus.Submitted;
                            }
                            else if (dictOfRequestedFeedbackAnswered[section.SectionNo] == true)
                            {
                                // TODO: This is dependant on QnA notifying us that the RequestedFeedbackAnswered has been answered
                                // otherwise section.Status will remain as is (most likely Evaluated)
                                section.Status = ApplicationSectionStatus.Submitted;
                            }
                        }
                    }
                }
            }
        }
        public void Start_assessor_review_returns_true_when_section_review_initiated()
        {
            var applyData = new ApplyData
            {
                Sequences = new List <ApplySequence>
                {
                    new ApplySequence
                    {
                        SequenceNo = 2,
                        Sections   = new List <ApplySection>
                        {
                            new ApplySection
                            {
                                SectionNo = 1,
                                Status    = AssessorReviewStatus.Draft
                            }
                        }
                    }
                }
            };

            _repository.Setup(x => x.GetApplyData(It.IsAny <Guid>())).ReturnsAsync(applyData);

            _repository.Setup(x => x.UpdateApplyData(It.IsAny <Guid>(), It.IsAny <ApplyData>(), It.IsAny <string>())).ReturnsAsync(true);

            var request = new StartAssessorSectionReviewRequest(Guid.NewGuid(), SequenceId, SectionId, Reviewer);

            var result = _handler.Handle(request, new CancellationToken()).GetAwaiter().GetResult();

            result.Should().BeTrue();
        }
コード例 #12
0
        public void LoadHistory(string applyId, int dayRange = 30)
        {
            _isBinding = true;
            try
            {
                InitHistoryList();

                if (string.IsNullOrEmpty(applyId))
                {
                    MessageBox.Show("申请ID无效,不能加载历史检查。", "提示");
                    return;
                }

                DataTable dtHistory = ReportContextModel.ReadHistory(applyId, dayRange);

                foreach (DataRow drItem in dtHistory.Rows)
                {
                    ApplyData applyData = new ApplyData();
                    applyData.BindRowData(drItem);


                    ListViewItem itemNew = new ListViewItem(new string[] { applyData.申请信息.姓名, applyData.检查号, applyData.申请日期.ToString("yyyy-MM-dd HH:mm"), applyData.申请信息.检查项目.项目名称 }, 0);

                    itemNew.Tag = applyData;

                    listView1.Items.Add(itemNew);
                }

                listView1.View = View.Details;
            }
            finally
            {
                _isBinding = false;
            }
        }
        private void AddSubmissionInfoToApplyData(ApplyData applyData, int sequenceNo, Domain.Entities.Contact submittingContact)
        {
            var submission = new Submission
            {
                SubmittedAt      = DateTime.UtcNow,
                SubmittedBy      = submittingContact.Id,
                SubmittedByEmail = submittingContact.Email
            };

            if (sequenceNo == ApplyConst.ORGANISATION_SEQUENCE_NO)
            {
                applyData.Apply.AddInitSubmission(submission);
            }
            else if (sequenceNo == ApplyConst.STANDARD_SEQUENCE_NO)
            {
                applyData.Apply.AddStandardSubmission(submission);
            }
            else if (sequenceNo == ApplyConst.ORGANISATION_WITHDRAWAL_SEQUENCE_NO)
            {
                applyData.Apply.AddOrganisationWithdrawalSubmission(submission);
            }
            else if (sequenceNo == ApplyConst.STANDARD_WITHDRAWAL_SEQUENCE_NO)
            {
                applyData.Apply.AddStandardWithdrawalSubmission(submission);
            }
        }
コード例 #14
0
        static void FormatPathRecursively(string path, List <string> ignoreList, FormatPathPair fpp, TFormatterPlatform platform, bool origin = false)
        {
            string        platformName = TextureFormat.GetPlatformName(platform);
            TextureFormat tf           = fpp.GetFormatByPlatform((int)platform);

            path = path.Replace('\\', '/');
            for (int k = 0; k < ignoreList.Count; k++)
            {
                if (ignoreList[k] == path && !origin)
                {
                    return;
                }
            }
            TextureImporterFormat tif = tf.format;
            bool      advanced        = tif > 0;
            ApplyData ad = new ApplyData(path, ignoreList, fpp);

            ad.tf           = tf;
            ad.advanced     = advanced;
            ad.platformName = platformName;
            ApplyImporter importerHandler = null;

            switch (fpp.iType)
            {
            case ImporterType.Texture:
                importerHandler = ApplyTextureImporter;
                break;

            case ImporterType.Model:
                importerHandler = ApplyModelImporter;
                break;

            case ImporterType.Audio:
                importerHandler = ApplyAudioImporter;
                break;
            }
            if (Directory.Exists(path))
            {
                ad.needToCheck = true;
                DirectoryInfo   di    = new DirectoryInfo(path);
                FileInfo[]      files = di.GetFiles();
                DirectoryInfo[] dis   = di.GetDirectories();
                foreach (FileInfo fi in files)
                {
                    int    index     = fi.FullName.IndexOf("Assets");
                    string assetPath = fi.FullName.Substring(index);
                    assetPath    = assetPath.Replace('\\', '/');
                    ad.assetPath = assetPath;
                    importerHandler(ad);
                }
                foreach (DirectoryInfo idi in dis)
                {
                    FormatPathRecursively(idi.FullName.Substring(idi.FullName.IndexOf("Assets")), ignoreList, fpp, platform);
                }
            }
            else if (File.Exists(path))
            {
                importerHandler(ad);
            }
        }
コード例 #15
0
        public async Task GetOverviewViewModel_with_clarifications_returns_model()
        {
            var applyData = new ApplyData
            {
                ApplyDetails = new ApplyDetails
                {
                    UKPRN            = Ukprn,
                    OrganisationName = OrganisationName
                }
            };

            var returnedRoatpApplicationResponse = new Apply
            {
                ApplicationId       = _applicationId,
                ApplyData           = applyData,
                GatewayReviewStatus = GatewayReviewStatus.InProgress
            };

            var contactDetails = new ContactDetails {
                Email = Email
            };

            _applyApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(returnedRoatpApplicationResponse);
            _applyApiClient.Setup(x => x.GetContactDetails(_applicationId)).ReturnsAsync(contactDetails);
            _applyApiClient.Setup(x => x.GetOversightDetails(_applicationId)).ReturnsAsync(() =>
                                                                                           new ApplicationOversightDetails {
                OversightStatus = OversightReviewStatus.None
            });

            const string sectionReviewStatus = SectionReviewStatus.Clarification;
            const string comment             = "comments go here";

            var returnedGatewayPageAnswers = new List <GatewayPageAnswerSummary>
            {
                new GatewayPageAnswerSummary
                {
                    ApplicationId = _applicationId,
                    PageId        = GatewayPageIds.OrganisationRisk,
                    Status        = sectionReviewStatus,
                    Comments      = comment
                }
            };

            _applyApiClient.Setup(x => x.GetGatewayPageAnswers(_applicationId)).ReturnsAsync(returnedGatewayPageAnswers);

            var gatewayReviewStatus = GatewayReviewStatus.InProgress;
            var request             = new GetApplicationOverviewRequest(_applicationId, UserName);

            var viewModel = await _orchestrator.GetOverviewViewModel(request);

            Assert.AreEqual(_applicationId, viewModel.ApplicationId);
            Assert.AreEqual(viewModel.ApplicationEmailAddress, Email);
            Assert.AreEqual(Ukprn, viewModel.Ukprn);
            Assert.AreEqual(OrganisationName, viewModel.OrganisationName);
            Assert.AreEqual(gatewayReviewStatus, viewModel.GatewayReviewStatus);
            Assert.AreEqual(sectionReviewStatus, viewModel.Sequences.FirstOrDefault(seq => seq.SequenceNumber == 1).Sections.FirstOrDefault(sec => sec.PageId == GatewayPageIds.OrganisationRisk).Status);
            Assert.AreEqual(false, viewModel.IsClarificationsSelectedAndAllFieldsSet);
            Assert.AreEqual(false, viewModel.ReadyToConfirm);
        }
コード例 #16
0
        static void ApplyModelImporter(ApplyData ad)
        {
            string         assetPath    = ad.assetPath;
            List <string>  ignoreList   = ad.ignoreList;
            TextureFormat  tf           = ad.tf;
            FormatPathPair fpp          = ad.fpp;
            bool           advanced     = ad.advanced;
            string         platformName = ad.platformName;
            bool           needToCheck  = ad.needToCheck;
            ModelImporter  mi           = AssetImporter.GetAtPath(assetPath) as ModelImporter;

            if (mi != null)
            {
                if (needToCheck)
                {
                    for (int k = 0; k < ignoreList.Count; k++)
                    {
                        if (ignoreList[k] == assetPath)
                        {
                            return;
                        }
                    }
                }

                bool need_reimport = false;

                if (assetPath.Contains(terrainResPath))
                {
                    if (mi.isReadable != fpp.isReadable || mi.meshCompression != ModelImporterMeshCompression.Low || !mi.optimizeGameObjects || mi.animationCompression != ModelImporterAnimationCompression.Optimal || !mi.optimizeMesh || mi.indexFormat != ModelImporterIndexFormat.UInt16 || mi.importNormals != ModelImporterNormals.None)
                    {
                        mi.meshCompression = ModelImporterMeshCompression.Low;
                        need_reimport      = true;
                        mi.importNormals   = ModelImporterNormals.None;
                    }
                }
                else
                {
                    if (mi.isReadable != fpp.isReadable || mi.meshCompression != ModelImporterMeshCompression.High || !mi.optimizeGameObjects || mi.animationCompression != ModelImporterAnimationCompression.Optimal || mi.importLights || !mi.optimizeMesh || mi.indexFormat != ModelImporterIndexFormat.UInt16)
                    {
                        mi.meshCompression = ModelImporterMeshCompression.High;
                        mi.importLights    = false;
                        need_reimport      = true;
                    }
                }

                if (need_reimport)
                {
                    mi.isReadable           = fpp.isReadable;
                    mi.optimizeGameObjects  = true;
                    mi.optimizeMesh         = true;
                    mi.animationCompression = ModelImporterAnimationCompression.Optimal;
                    mi.indexFormat          = ModelImporterIndexFormat.UInt16;
                    if (!reimportList.Contains(assetPath))
                    {
                        reimportList.Add(assetPath);
                    }
                }
            }
        }
 private bool IsSectionRequired(ApplyData applyData, int sequenceNo, int sectionNo)
 {
     // a sequence section cannot be considered required if the sequence or sequence section does not exist in the ApplyData
     return(applyData
            ?.Sequences
            ?.Where(sequence => sequence.SequenceNo == sequenceNo && !sequence.NotRequired)
            ?.SelectMany(sequence => sequence.Sections.Where(section => section.SectionNo == sectionNo && !section.NotRequired))
            ?.Any() ?? false);
 }
        public async Task GetClarificationViewModel_returns_model()
        {
            var applyData = new ApplyData
            {
                ApplyDetails = new ApplyDetails
                {
                    UKPRN            = Ukprn,
                    OrganisationName = OrganisationName
                }
            };

            var returnedRoatpApplicationResponse = new Apply
            {
                ApplicationId       = _applicationId,
                ApplyData           = applyData,
                GatewayReviewStatus = GatewayReviewStatus.InProgress
            };

            var contactDetails = new ContactDetails {
                Email = Email
            };

            _applyApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(returnedRoatpApplicationResponse);
            _applyApiClient.Setup(x => x.GetContactDetails(_applicationId)).ReturnsAsync(contactDetails);

            const string status  = SectionReviewStatus.Clarification;
            const string comment = "comments go here";

            var returnedGatewayPageAnswers = new List <GatewayPageAnswerSummary>
            {
                new GatewayPageAnswerSummary
                {
                    ApplicationId = _applicationId,
                    PageId        = GatewayPageIds.OrganisationRisk,
                    Status        = status,
                    Comments      = comment
                }
            };

            _applyApiClient.Setup(x => x.GetGatewayPageAnswers(_applicationId)).ReturnsAsync(returnedGatewayPageAnswers);

            var request = new GetApplicationClarificationsRequest(_applicationId, UserName);

            var viewModel = await _orchestrator.GetClarificationViewModel(request);


            Assert.AreEqual(_applicationId, viewModel.ApplicationId);
            Assert.AreEqual(Email, viewModel.ApplicationEmailAddress);
            Assert.AreEqual(Ukprn, viewModel.Ukprn);
            Assert.AreEqual(OrganisationName, viewModel.OrganisationName);
            Assert.AreEqual(1, viewModel.Sequences.Count);
            Assert.AreEqual("Organisation checks", viewModel.Sequences[0].SequenceTitle);
            Assert.AreEqual(1, viewModel.Sequences[0].Sections.Count);
            Assert.AreEqual("Organisation high risk", viewModel.Sequences[0].Sections[0].PageTitle);
            Assert.AreEqual(comment, viewModel.Sequences[0].Sections[0].Comment);
        }
コード例 #19
0
 public ReuseSelectionList(Func <V> spawner,
                           ApplyData displayer,
                           IDataSource source,
                           int windowSize,
                           int selectionIndexInWindow)
 {
     _resultDisplay   = new ReuseList <V>(spawner);
     _displayer       = displayer;
     _selectionWindow = new SlidingSelectionWindow(source, windowSize, selectionIndexInWindow);
 }
コード例 #20
0
 public async Task <Guid> StartApplication(Guid applicationId, ApplyData applyData, Guid organisationId, Guid createdBy)
 {
     using (var connection = new SqlConnection(_config.SqlConnectionString))
     {
         return(await connection.QuerySingleAsync <Guid>(
                    @"INSERT INTO Apply (ApplicationId, OrganisationId, ApplicationStatus, ApplyData, AssessorReviewStatus, GatewayReviewStatus, FinancialReviewStatus, CreatedBy, CreatedAt)
                                 OUTPUT INSERTED.[ApplicationId] 
                                 VALUES (@applicationId, @organisationId, @applicationStatus, @applyData, @assessorReviewStatus, @gatewayReviewStatus, @financialReviewStatus, @createdBy, GETUTCDATE())",
                    new { applicationId, organisationId, applicationStatus = ApplicationStatus.InProgress, applyData, assessorReviewStatus = AssessorReviewStatus.Draft, gatewayReviewStatus = GatewayReviewStatus.Draft, financialReviewStatus = FinancialReviewStatus.Draft, createdBy }));
     }
 }
        private async Task NotifyContact(Domain.Entities.Contact contactToNotify, ApplyData applyData, CancellationToken cancellationToken)
        {
            var email             = contactToNotify.Email;
            var contactname       = contactToNotify.DisplayName;
            var standard          = applyData.Apply.StandardName;
            var standardreference = applyData.Apply.StandardReference;
            var version           = applyData.Apply.Versions.First();

            var emailTemplate = await _eMailTemplateQueryRepository.GetEmailTemplate(EmailTemplateNames.ApplyEPAOStandardOptin);

            await _mediator.Send(new SendEmailRequest(email, emailTemplate, new { contactname, standard, standardreference, version }), cancellationToken);
        }
コード例 #22
0
        static void ApplyTextureImporter(ApplyData ad)
        {
            string          assetPath    = ad.assetPath;
            List <string>   ignoreList   = ad.ignoreList;
            TextureFormat   tf           = ad.tf;
            FormatPathPair  fpp          = ad.fpp;
            bool            advanced     = ad.advanced;
            string          platformName = ad.platformName;
            bool            needToCheck  = ad.needToCheck;
            TextureImporter ti           = AssetImporter.GetAtPath(assetPath) as TextureImporter;

            if (ti != null)
            {
                if (needToCheck)
                {
                    for (int k = 0; k < ignoreList.Count; k++)
                    {
                        if (ignoreList[k] == assetPath)
                        {
                            return;
                        }
                    }
                }

                if (string.IsNullOrEmpty(platformName))
                {
                    for (int j = 0; j < 3; j++)
                    {
                        tf           = fpp.GetFormatByPlatform(j);
                        platformName = platforms[j];
                        if (!fpp.Compare(ti, tf, platformName))
                        {
                            fpp.Apply(ti, tf, platformName);
                            if (!reimportList.Contains(assetPath))
                            {
                                reimportList.Add(assetPath);
                            }
                        }
                    }
                }
                else
                {
                    if (!fpp.Compare(ti, tf, platformName))
                    {
                        fpp.Apply(ti, tf, platformName);
                        if (!reimportList.Contains(assetPath))
                        {
                            reimportList.Add(assetPath);
                        }
                    }
                }
            }
        }
        public void Start_assessor_review_returns_false_if_no_apply_data_present()
        {
            ApplyData applyData = null;

            _repository.Setup(x => x.GetApplyData(It.IsAny <Guid>())).ReturnsAsync(applyData);

            var request = new StartAssessorSectionReviewRequest(Guid.NewGuid(), SequenceId, SectionId, Reviewer);

            var result = _handler.Handle(request, new CancellationToken()).GetAwaiter().GetResult();

            result.Should().BeFalse();
        }
        public async Task GetConfirmOverviewViewModel_returns_model(string ukprn, string organisationName, string sectionReviewStatus, string comment, bool isClarificationSet)
        {
            var applicationId       = Guid.NewGuid();
            var gatewayReviewStatus = GatewayReviewStatus.InProgress;

            var applyData = new ApplyData
            {
                ApplyDetails = new ApplyDetails
                {
                    UKPRN            = ukprn,
                    OrganisationName = organisationName
                }
            };

            var application = new Apply
            {
                ApplicationId       = applicationId,
                ApplyData           = applyData,
                GatewayReviewStatus = GatewayReviewStatus.InProgress
            };

            _applyApiClient.Setup(x => x.GetApplication(applicationId)).ReturnsAsync(application);
            _applyApiClient.Setup(x => x.GetOversightDetails(applicationId)).ReturnsAsync(() =>
                                                                                          new ApplicationOversightDetails {
                OversightStatus = OversightReviewStatus.None
            });

            var returnedGatewayPageAnswers = new List <GatewayPageAnswerSummary>
            {
                new GatewayPageAnswerSummary
                {
                    ApplicationId = applicationId,
                    PageId        = GatewayPageIds.OrganisationRisk,
                    Status        = sectionReviewStatus,
                    Comments      = comment
                }
            };

            _applyApiClient.Setup(x => x.GetGatewayPageAnswers(applicationId)).ReturnsAsync(returnedGatewayPageAnswers);

            var request = new GetApplicationOverviewRequest(applicationId, UserName);

            var viewModel = await _orchestrator.GetConfirmOverviewViewModel(request);

            Assert.AreEqual(applicationId, viewModel.ApplicationId);
            Assert.AreEqual(ukprn, viewModel.Ukprn);
            Assert.AreEqual(organisationName, viewModel.OrganisationName);
            Assert.AreEqual(gatewayReviewStatus, viewModel.GatewayReviewStatus);
            Assert.AreEqual(sectionReviewStatus, viewModel.Sequences.FirstOrDefault(seq => seq.SequenceNumber == 1).Sections.FirstOrDefault(sec => sec.PageId == GatewayPageIds.OrganisationRisk).Status);
            Assert.AreEqual(comment, viewModel.Sequences.FirstOrDefault(seq => seq.SequenceNumber == 1).Sections.FirstOrDefault(sec => sec.PageId == GatewayPageIds.OrganisationRisk).Comment);
            Assert.AreEqual(viewModel.IsClarificationsSelectedAndAllFieldsSet, isClarificationSet);
        }
コード例 #25
0
        private void PreviewImage()
        {
            if (listView1.SelectedItems.Count <= 0)
            {
                MessageBox.Show("请选择需要查看的历次检查。", "提示");
                return;
            }

            ListViewItem lvi       = listView1.SelectedItems[0];
            ApplyData    applyData = lvi.Tag as ApplyData;

            FuncHelper.ShowImgPreview(_dbQuery, applyData.申请ID, this);
        }
コード例 #26
0
        static void FormatPathRecursively(string path, List <string> ignoreList, FormatPathPair fpp, bool origin = false)
        {
            path = path.Replace('\\', '/');
            for (int k = 0; k < ignoreList.Count; k++)
            {
                if (ignoreList[k] == path && !origin)
                {
                    return;
                }
            }
            ApplyData     ad = new ApplyData(path, ignoreList, fpp);
            ApplyImporter importerHandler = null;

            switch (fpp.iType)
            {
            case ImporterType.Texture:
                importerHandler = ApplyTextureImporter;
                break;

            case ImporterType.Model:
                importerHandler = ApplyModelImporter;
                break;

            case ImporterType.Audio:
                importerHandler = ApplyAudioImporter;
                break;
            }
            if (Directory.Exists(path))
            {
                DirectoryInfo   di    = new DirectoryInfo(path);
                FileInfo[]      files = di.GetFiles();
                DirectoryInfo[] dis   = di.GetDirectories();
                foreach (FileInfo fi in files)
                {
                    int    index     = fi.FullName.IndexOf("Assets");
                    string assetPath = fi.FullName.Substring(index);
                    assetPath    = assetPath.Replace('\\', '/');
                    ad.assetPath = assetPath;
                    importerHandler(ad);
                }
                foreach (DirectoryInfo idi in dis)
                {
                    FormatPathRecursively(idi.FullName.Substring(idi.FullName.IndexOf("Assets")), ignoreList, fpp);
                }
            }
            else if (File.Exists(path))
            {
                ad.needToCheck = false;
                importerHandler(ad);
            }
        }
コード例 #27
0
ファイル: TexturesOut.cs プロジェクト: AJ213/Awitu
        public static FinalizeAction finalizeAction = Finalize;          //class identified for FinalizeData
        public static void Finalize(TileData data, StopToken stop)
        {
            //calculating number of layers
            int layersCount = data.finalize.GetTypeCount(finalizeAction, data.subDatas);

            //preparing arrays
            if (stop != null && stop.stop)
            {
                return;
            }
            TerrainLayer[] prototypes = new TerrainLayer[layersCount];
            Matrix[]       matrices   = new Matrix[layersCount];
            Matrix[]       masks      = new Matrix[layersCount];

            int i = 0;

            foreach ((TextureLayer output, MatrixWorld product, MatrixWorld biomeMask)
                     in data.finalize.ProductSets <TextureLayer, MatrixWorld, MatrixWorld>(finalizeAction, data.subDatas))
            {
                prototypes[i] = output.prototype;
                matrices[i]   = product;
                masks[i]      = biomeMask;
                i++;
            }

            //creating splats and prototypes arrays
            if (stop != null && stop.stop)
            {
                return;
            }
            float[,,] splats3D = BlendLayers(matrices, masks, data.area, stop);

            //pushing to apply
            if (stop != null && stop.stop)
            {
                return;
            }
            ApplyData applyData = new ApplyData()
            {
                splats = splats3D, prototypes = prototypes
            };

            Graph.OnBeforeOutputFinalize?.Invoke(typeof(TexturesOutput200), data, applyData, stop);
            data.apply.Add(applyData);

                        #if MM_DEBUG
            Debug.Log("TexturesOut Finalized");
                        #endif
        }
コード例 #28
0
        public async Task <bool> UpdateGatewayApplyData(Guid applicationId, ApplyData applyData, string userId, string userName)
        {
            using (var connection = _dbConnectionHelper.GetDatabaseConnection())
            {
                var rowsAffected = await connection.ExecuteAsync(@"UPDATE [Apply]
                                                   SET [ApplyData] = @applyData
                                                      ,[UpdatedAt] = GetUTCDATE()
                                                      ,[UpdatedBy] = @userName 
                                                      ,[GatewayUserId] = @userId
                                                      ,[GatewayUsername] = @userName
                                                 WHERE [ApplicationId] = @applicationId",
                                                                 new { applicationId, applyData, userId, userName });

                return(rowsAffected > 0);
            }
        }
コード例 #29
0
        public static FinalizeAction finalizeAction = Finalize;         //class identified for FinalizeData
        public static void Finalize(TileData data, StopToken stop)
        {
                        #if VEGETATION_STUDIO_PRO
            //creating splats and prototypes arrays
            int layersCount = data.finalize.GetTypeCount(finalizeAction, data.subDatas);
            int splatsSize  = data.area.active.rect.size.x;

            //preparing texture colors
            VegetationPackagePro package = data.globals.vegetationPackage as VegetationPackagePro;
            Color[][]            colors  = new Color[package != null ? package.TextureMaskGroupList.Count : 0][];
            for (int c = 0; c < colors.Length; c++)
            {
                colors[c] = new Color[splatsSize * splatsSize];
            }
            int[] maskGroupNums = new int[colors.Length];

            //filling colors
            int i = 0;
            foreach ((VSProMapsOut output, MatrixWorld matrix, MatrixWorld biomeMask)
                     in data.finalize.ProductSets <VSProMapsOut, MatrixWorld, MatrixWorld>(finalizeAction, data.subDatas))
            {
                if (matrix == null || package == null)
                {
                    continue;
                }
                BlendLayer(colors, data.area, matrix, biomeMask, output.density, output.maskGroup, output.textureChannel, stop);
                maskGroupNums[i / 4] = output.maskGroup;
                i++;
            }

            //pushing to apply
            if (stop != null && stop.stop)
            {
                return;
            }
            ApplyData applyData = new ApplyData()
            {
                srcSystem     = data.globals.vegetationSystem as VegetationSystemPro,
                package       = package,
                colors        = colors,
                maskGroupNums = maskGroupNums,
                copyVS        = data.globals.vegetationSystemCopy
            };
            Graph.OnBeforeOutputFinalize?.Invoke(typeof(VSProMapsOut), data, applyData, stop);
            data.apply.Add(applyData);
                        #endif
        }
コード例 #30
0
ファイル: VSProMapsOut.cs プロジェクト: fanfer/CSharp
        public static FinalizeAction finalizeAction = Finalize;         //class identified for FinalizeData
        public static void Finalize(TileData data, StopToken stop)
        {
                        #if VEGETATION_STUDIO_PRO
            //creating splats and prototypes arrays
            int layersCount = data.OutputsCount(finalizeAction, inSubs: true);
            int splatsSize  = data.area.active.rect.size.x;

            //preparing texture colors
            VegetationPackagePro package = data.globals.vegetationPackage as VegetationPackagePro;
            Color[][]            colors  = new Color[package != null ? package.TextureMaskGroupList.Count : 0][];
            for (int c = 0; c < colors.Length; c++)
            {
                colors[c] = new Color[splatsSize * splatsSize];
            }
            int[] maskGroupNums = new int[colors.Length];

            //filling colors
            int i = 0;
            foreach ((VSProMapsOut output, MatrixWorld matrix, MatrixWorld biomeMask)
                     in data.Outputs <VSProMapsOut, MatrixWorld, MatrixWorld>(typeof(VSProMapsOut), inSubs:true))
            {
                if (matrix == null || package == null)
                {
                    continue;
                }
                BlendLayer(colors, data.area, matrix, biomeMask, output.density, output.maskGroup, output.textureChannel, stop);
                maskGroupNums[output.maskGroup] = output.maskGroup;                 //TODO: removed i/4, test this! (http://mm2.idea.informer.com/proj/?ia=134562)
                i++;
            }

            //pushing to apply
            if (stop != null && stop.stop)
            {
                return;
            }
            ApplyData applyData = new ApplyData()
            {
                srcSystem     = data.globals.vegetationSystem as VegetationSystemPro,
                package       = package,
                colors        = colors,
                maskGroupNums = maskGroupNums,
                copyVS        = data.globals.vegetationSystemCopy
            };
            Graph.OnOutputFinalized?.Invoke(typeof(VSProMapsOut), data, applyData, stop);
            data.MarkApply(applyData);
                        #endif
        }