Beispiel #1
0
        public async Task <IActionResult> AddIssue(AddNewIssueViewModel model)
        {
            if (ModelState.IsValid)
            {
                Console.WriteLine("Testing");
                var userId      = userManager.GetUserId(User);
                var currentUser = await userManager.FindByIdAsync(userId);

                var userClaims = await userManager.GetClaimsAsync(currentUser);

                Global.globalCurrentUserClaims = userClaims.ToList();

                var IsUserManagerLevel = ClaimsLevel.IsManager(userClaims.ToList(), model.NewIssue.AssociatedProject);

                if (IsUserManagerLevel && model.NewIssue.AssigneeUserId != null)
                {
                    var assignedUser = await userManager.FindByIdAsync(model.NewIssue.AssigneeUserId);

                    model.NewIssue.AssigneeUserName = assignedUser.UserName;
                }

                model.NewIssue.SubmitterId       = userManager.GetUserId(User);
                model.NewIssue.SubmitterUserName = userManager.GetUserName(User);
                model.NewIssue.CreatedTime       = DateTime.Now;

                var issue = _issueRepository.AddIssue(model.NewIssue);

                if (issue.Title == null)
                {
                    issue.Title = $"issue {issue.IssueId}";
                    _issueRepository.Update(issue);
                }

                var projectIssue = new ProjectIssue
                {
                    ProjectId = issue.AssociatedProject,
                    IssueId   = issue.IssueId
                };
                _projectRepository.AddProjectIssues(projectIssue);
                Console.WriteLine("HERERERER");

                var fileNames = new List <ScreenShots>();

                if (Global.globalInitialScreenShots == true)
                {
                    Console.WriteLine("Globally");
                    fileNames = await UploadScreenShotsToStorage(issue.IssueId);
                }

                Global.InitialScreenShots = false;
                _issueRepository.AddScreenShots(fileNames);

                Console.WriteLine(_issueRepository.ScreenShots(issue.IssueId));



                return(RedirectToAction("projectissues", "Project", new { projectId = model.NewIssue.AssociatedProject }));
            }
            return(View());
        }
Beispiel #2
0
        public override async Task <UpdateIssueRequest> HandleAsync(UpdateIssueRequest command, CancellationToken cancellationToken = new CancellationToken())
        {
            var result = await _issueRepository.GetIssue(command.LibraryId, command.PeriodicalId, command.VolumeNumber, command.IssueNumber, cancellationToken);

            if (result == null)
            {
                var Issue = command.Issue;
                Issue.Id             = default(int);
                command.Result.Issue = await _issueRepository.AddIssue(command.LibraryId, command.PeriodicalId, Issue, cancellationToken);

                command.Result.HasAddedNew = true;
            }
            else
            {
                result.IssueNumber  = command.Issue.IssueNumber;
                result.VolumeNumber = command.Issue.VolumeNumber;
                result.IssueDate    = command.Issue.IssueDate;

                await _issueRepository.UpdateIssue(command.LibraryId, command.PeriodicalId, result, cancellationToken);

                command.Result.Issue = command.Issue;
            }
            command.Issue.PeriodicalId = command.PeriodicalId;

            return(await base.HandleAsync(command, cancellationToken));
        }
Beispiel #3
0
 public ActionResult Add(AddIssueModel model)
 {
     if (ModelState.IsValid)
     {
         _repository.AddIssue(model);
         return(RedirectToAction("List"));
     }
     return(View(model));
 }
Beispiel #4
0
            public override async Task <AddIssueRequest> HandleAsync(AddIssueRequest command, CancellationToken cancellationToken = new CancellationToken())
            {
                var issue = await _issueRepository.GetIssue(command.LibraryId, command.PeriodicalId, command.Issue.VolumeNumber, command.Issue.IssueNumber, cancellationToken);

                if (issue != null)
                {
                    throw new ConflictException();
                }
                command.Result = await _issueRepository.AddIssue(command.LibraryId, command.PeriodicalId, command.Issue, cancellationToken);

                return(await base.HandleAsync(command, cancellationToken));
            }
        public async Task <ActionResult> CreateIssue(MyIssuesViewModel myIssuesViewModel)
        {
            if (ModelState.IsValid)
            {
                Issue issue = myIssuesViewModel.Issue;

                issue.Created = DateTime.UtcNow.ToString();
                issue.Updated = issue.Created;
                issue.Users   = new List <string>();

                if (myIssuesViewModel.IssueImages != null)
                {
                    foreach (var image in myIssuesViewModel.IssueImages)
                    {
                        if (image.Length > 0)
                        {
                            using (var ms = new MemoryStream())
                            {
                                image.CopyTo(ms);
                                var    fileBytes  = ms.ToArray();
                                string fileString = Convert.ToBase64String(fileBytes);

                                // act on the Base64 data
                                issue.ScreenshotArray  = fileBytes;
                                issue.ScreenshotString = fileString;
                            }
                        }
                    }
                }

                await _issueRepository.AddIssue(issue);

                var selectedProject = await _projectRepository.GetProject(issue.ProjectIDCode.Split(':')[0]);

                selectedProject.Issues.Add(issue.IDCode + ":" + issue.Title);

                await _projectRepository.Update(selectedProject);

                if (issue.AddUsers != null)
                {
                    foreach (var user in issue.AddUsers)
                    {
                        var User = await _userRepository.GetUser(user);

                        await _projectManagementController.AddorRmove("Add", "Issue", User, selectedProject, issue, GetAuthorizationToken()); // add param to say its adding for issue
                    }
                }
            }

            return(RedirectToAction("Index"));
        }
 public async Task <ActionResult <ClientIssue> > AddIssue(ClientIssue newIssue)
 {
     return(await ir.AddIssue(HttpContext.Items["UserID"].ToString(), newIssue));
 }