Esempio n. 1
0
        public async Task ShouldSaveConfiguration()
        {
            var config = new VstsDataSourceViewModel
            {
                Id           = Guid.NewGuid(),
                DefaultToken = Guid.NewGuid(),
                InstanceName = "Fooooo"
            };

            _repositorMock.Setup(r => r.CreateOrUpdateIfAsync(It.Is <Expression <Func <VstsDataSourceSettings, bool> > >(e => CheckCriteria(e)), It.Is <VstsDataSourceSettings>(s => CheckDtoRecord(config, s))))
            .ReturnsAsync(true)
            .Verifiable();

            await _handler.Handle(new SaveVstsDataSourceConfiguration { Configuration = config });

            _repositorMock.VerifyAll();
        }
Esempio n. 2
0
 public Task SaveVstsDataSourceConfig(VstsDataSourceViewModel model)
 {
     return(HttpPost("Settings/VstsDataSourceConfiguration", model));
 }
Esempio n. 3
0
 private string GetWorkItemUrl(VstsDataSourceViewModel vstsConfig, string project, int workItemId)
 {
     return($"https://{vstsConfig.InstanceName}.visualstudio.com/{project}/_workitems/edit/{workItemId}");
 }
Esempio n. 4
0
        public Task <byte[]> Generate(ProfileViewModel profile, WorkItemsReportViewModel report, GenerateEmailViewModel model, VstsDataSourceViewModel vstsConfig)
        {
            _logger.LogInformation("Requesting email for {ProfileId} - {ProfileName}");
            var reportExt = new Report();

            reportExt.Active.AddRange(report.ActiveWorkItems.Select(w => new WorkItem()
            {
                Id        = w.WorkItemId,
                Url       = GetWorkItemUrl(vstsConfig, w.WorkItemProject, w.WorkItemId),
                Title     = w.WorkItemTitle,
                Type      = w.WorkItemType,
                Estimated = (int)w.EstimatedToComplete,
                Spent     = (int)w.TimeSpent
            }));
            reportExt.Completed.AddRange(report.ResolvedWorkItems.Select(w => new WorkItem()
            {
                Id        = w.WorkItemId,
                Url       = GetWorkItemUrl(vstsConfig, w.WorkItemProject, w.WorkItemId),
                Title     = w.WorkItemTitle,
                Type      = w.WorkItemType,
                Estimated = (int)w.EstimatedToComplete,
                Spent     = (int)w.TimeSpent
            }));
            reportExt.Inreview.AddRange(report.WorkItemsInReview.Select(w => new WorkItem()
            {
                Id        = w.WorkItemId,
                Url       = GetWorkItemUrl(vstsConfig, w.WorkItemProject, w.WorkItemId),
                Title     = w.WorkItemTitle,
                Type      = w.WorkItemType,
                Estimated = (int)w.EstimatedToComplete,
                Spent     = (int)w.TimeSpent
            }));

            var request = new EmailRequest
            {
                Id       = report.Id.ToString(),
                Name     = report.ProfileName,
                Report   = reportExt,
                Template = new EmailTemplate {
                    Subject = profile.EmailSubject, Body = profile.EmailBody
                },
                Points = model.Points,
            };

            request.Attendance.AddRange(model.Attendance.Select(a =>
            {
                var attendance = new TeamAttendance
                {
                    Name = a.MemberName
                };
                attendance.Attendance.AddRange(a.Attendance.Select(ma => ma));
                return(attendance);
            }));

            var reply = _client.Generate(request);

            return(Task.FromResult(reply.File.ToByteArray()));
        }
 private async Task HandleSave(IStore <RootState> store, VstsDataSourceViewModel s)
 {
     await store.Dispatch <SaveDataSource, VstsDataSourceViewModel>(s);
 }
Esempio n. 6
0
 private bool CheckDtoRecord(VstsDataSourceViewModel model, VstsDataSourceSettings record)
 {
     return(model.Id == record.Id &&
            string.Equals(model.InstanceName, record.InstanceName) &&
            string.Equals(model.DefaultToken, record.DefaultToken));
 }
Esempio n. 7
0
 public SettingsState(IEnumerable <IdentityViewModel> identities, VstsDataSourceViewModel dataSource)
 {
     Identities = identities;
     DataSource = dataSource;
 }
Esempio n. 8
0
        public async Task <ActionResult> SaveVstsDataSourceConfiguration(VstsDataSourceViewModel model)
        {
            await _mediator.Execute(new SaveVstsDataSourceConfiguration { Configuration = model });

            return(Ok());
        }