Ejemplo n.º 1
0
        public WorklogView(RefreshableWorklogViewModel parent, Issue issue, IIssueService issueService, IssueDetailViewModel refreshViewModel)
        {
            InitializeComponent();

            this._viewModel  = new WorklogViewModel(parent, issue, issueService, refreshViewModel);
            this.DataContext = this._viewModel;
        }
Ejemplo n.º 2
0
        private async Task <ProjectViewModel> DownloadTimesheetImplAsync(RestApiServiceClient client,
                                                                         Period period,
                                                                         params string[] users)
        {
            var issuesRequest = BuildRequest(period, users);

            if (users.Length != 1)
            {
                throw new NotImplementedException();
            }

            //NOTE: our jira search request return all issues that match our request,
            //but this issues also may include worklogs that are not in requested period or for requested author
            //worklogs must be filtered here to match user request
            var issuesWithWorklogs = await client.GetIssuesAsync(issuesRequest);

            //mapping models to view models
            var authorViewModel  = new AuthorViewModel(users[0]);
            var issuesViewModels = new List <IssueViewModel>();

            foreach (var issue in issuesWithWorklogs)
            {
                var issueViewModel = new IssueViewModel(issue);
                issueViewModel.Worklogs = issue.worklogs
                                          .Where(w => authorViewModel.Name.Equals(w.authorName, StringComparison.InvariantCultureIgnoreCase))
                                          .Where(w => w.started.Date >= period.StartDate && w.started.Date <= period.EndDate)
                                          .Select(w =>
                {
                    var worklogViewModel = new WorklogViewModel(w)
                    {
                        Issue  = issueViewModel,
                        Author = authorViewModel
                    };
                    return(worklogViewModel);
                }).ToList();

                issuesViewModels.Add(issueViewModel);
            }

            var workDayViewModels = issuesViewModels.SelectMany(issue => issue.Worklogs)
                                    .GroupBy(w => w.StarteDate)
                                    .Select(g => new WorkDayViewModel {
                Worklogs = g.ToList()
            })
                                    .ToList();

            var projectViewModel = new ProjectViewModel(issuesViewModels, workDayViewModels, authorViewModel, period);

            return(projectViewModel);
        }
Ejemplo n.º 3
0
        public ActionResult Edit(int projectId, int taskId, int id)
        {
            try
            {
                if (User.Identity.IsAuthenticated)
                {
                    IWorklogLogic logic     = container.Resolve <IWorklogLogic>();
                    var           viewmodel = new WorklogViewModel(logic.HandleWorklogGet(projectId, taskId, id));

                    return(Json(viewmodel, JsonRequestBehavior.AllowGet));
                }
                return(Json(new JsonDataHandler(httpCode: HttpCodeEnum.Forbidden).getWarning(), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new JsonDataHandler(ex).getError(), JsonRequestBehavior.AllowGet));
            }
        }