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(); }
public Task SaveVstsDataSourceConfig(VstsDataSourceViewModel model) { return(HttpPost("Settings/VstsDataSourceConfiguration", model)); }
private string GetWorkItemUrl(VstsDataSourceViewModel vstsConfig, string project, int workItemId) { return($"https://{vstsConfig.InstanceName}.visualstudio.com/{project}/_workitems/edit/{workItemId}"); }
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); }
private bool CheckDtoRecord(VstsDataSourceViewModel model, VstsDataSourceSettings record) { return(model.Id == record.Id && string.Equals(model.InstanceName, record.InstanceName) && string.Equals(model.DefaultToken, record.DefaultToken)); }
public SettingsState(IEnumerable <IdentityViewModel> identities, VstsDataSourceViewModel dataSource) { Identities = identities; DataSource = dataSource; }
public async Task <ActionResult> SaveVstsDataSourceConfiguration(VstsDataSourceViewModel model) { await _mediator.Execute(new SaveVstsDataSourceConfiguration { Configuration = model }); return(Ok()); }