Ejemplo n.º 1
0
 public ShellViewModel(IHubbClient hubbClient, IEventAggregator eventAggregator)
 {
     Issues = new IssuesViewModel(hubbClient, eventAggregator);
     Menu = new MenuViewModel(hubbClient, eventAggregator);
     
     Issues.ConductWith(this);
     Menu.ConductWith(this);
 }
Ejemplo n.º 2
0
        public ActionResult Create(IssuesViewModel issueVM, HttpPostedFileBase upload)
        {
            var issue = new Issue()
            {
                UserId          = User.Identity.GetUserId(),
                StartDate       = DateTime.Now,
                EndDate         = DateTime.Now,
                InventoryNumber = issueVM.InventoryNumber,
                State           = 0,
                Rate            = 1,
                Description     = issueVM.Description,
                Title           = issueVM.Title,
                TypeId          = issueVM.TypeId
            };

            if (ModelState.IsValid)
            {
                if (upload != null && upload.ContentLength > 0)
                {
                    var attachment = new ReportAnIssue.Models.File
                    {
                        FileName    = System.IO.Path.GetFileName(upload.FileName),
                        ContentType = upload.ContentType
                    };
                    using (var reader = new System.IO.BinaryReader(upload.InputStream))
                    {
                        attachment.Content = reader.ReadBytes(upload.ContentLength);
                    }
                    db.Files.Add(attachment);
                    db.SaveChanges();
                    issue.FileId = attachment.Id;
                }
                db.Issues.Add(issue);
                db.SaveChanges();
            }
            var userMails = new List <string>();
            var userId    = User.Identity.GetUserId();

            userMails.Add(db.Users.First(u => u.Id == userId).Email);
            var type = db.Types.First(t => t.Id == issue.TypeId);

            foreach (var user in type.Users)
            {
                userMails.Add(user.Email);
            }
            SendMail.InformUsers(userMails, issue, User.Identity.Name, "", 1);
            TempData["Success"] = "Dodano nową usterkę!";
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 3
0
        public IssuesViewController(string user, string slug)
        {
            ViewModel = new IssuesViewModel(user, slug);
            BindCollection(ViewModel.Issues, CreateElement);

            NavigationItem.RightBarButtonItem = new UIBarButtonItem(NavigationButton.Create(Theme.CurrentTheme.AddButton, () => {
                var b = new IssueEditViewController(ViewModel.User, ViewModel.Slug)
                {
                    Success = (issue) => ViewModel.CreateIssue(issue)
                };
                NavigationController.PushViewController(b, true);
            }));

            ViewModel.Bind(x => x.IsLoading, Loading);
        }
Ejemplo n.º 4
0
        //
        // GET: /jira/issues
        public ActionResult Issues(int page = 1, int[] priority = null, int[] status = null)
        {
            string jql = "project=" + Util.GetProjectKey();

            if (priority != null)
            {
                jql += " AND priority in (" + String.Join(",", priority) + ")";
            }
            if (status != null)
            {
                jql += " AND status in (" + String.Join(",", status) + ")";
            }

            var model = new IssuesViewModel();

            try
            {
                model.Issues = Client.GetIssuesByJql(
                    jql, (page - 1) * ISSUES_PER_PAGE, ISSUES_PER_PAGE,
                    new string[]
                {
                    AnotherJiraRestClient.Issue.FIELD_SUMMARY,
                    AnotherJiraRestClient.Issue.FIELD_STATUS,
                    AnotherJiraRestClient.Issue.FIELD_DESCRIPTION,
                    AnotherJiraRestClient.Issue.FIELD_PRIORITY,
                    AnotherJiraRestClient.Issue.FIELD_ASSIGNEE,
                    AnotherJiraRestClient.Issue.FIELD_CREATED,
                    AnotherJiraRestClient.Issue.FIELD_REPORTER
                });
            }
            catch (JiraApiException)
            {
                throw new HttpException(503, "Tjänsten är inte tillgänglig, kunde inte nå Jira.");
            }

            model.Priorities         = Client.GetCachedPriorities(HttpContext);
            model.SelectedPriorities = priority;

            model.Statuses           = Client.GetCachedStatuses(HttpContext);
            model.SelectedPriorities = status;

            model.Page = new Page(
                page,
                model.Issues.total / ISSUES_PER_PAGE + 1,
                (helper, pageNumber) => CreateIssuesUrl(helper, pageNumber, priority, status));

            return(View(model));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Index(SortState sortOrder = SortState.Column1, bool isDesc = true, bool filter = false)
        {
            IQueryable <IssueEntity> issues = _context.Issues.Include(i => i.CreatedBy);

            if (filter)
            {
                issues = issues.Where(i => i.CreatedBy.Login == User.Identity.Name);
            }
            switch (sortOrder)
            {
            case SortState.Column1:
                issues = isDesc ? issues.OrderByDescending(i => i.CreationDate) : issues.OrderBy(i => i.CreationDate);
                break;

            case SortState.Column2:
                issues = isDesc ? issues.OrderByDescending(i => i.ShortDescription) : issues.OrderBy(i => i.ShortDescription);
                break;

            case SortState.Column3:
                issues = isDesc ? issues.OrderByDescending(i => i.Status) : issues.OrderBy(i => i.Status);
                break;

            case SortState.Column4:
                issues = isDesc ? issues.OrderByDescending(i => i.Priority) : issues.OrderBy(i => i.Priority);
                break;

            case SortState.Column5:
                issues = isDesc ? issues.OrderByDescending(i => i.Urgency) : issues.OrderBy(i => i.Urgency);
                break;

            case SortState.Column6:
                issues = isDesc ? issues.OrderByDescending(i => i.CreatedBy.FullName) : issues.OrderBy(i => i.CreatedBy.FullName);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(sortOrder), sortOrder, null);
            }

            var viewModel = new IssuesViewModel
            {
                Issues    = await issues.ToListAsync(),
                SortModel = new IssueSortViewModel(sortOrder, isDesc, filter.ToString()),
                Caption   = filter ? "Issues Created By You" : "All Issues"
            };

            return(View(viewModel));
        }
Ejemplo n.º 6
0
        public IssuesViewModel Get(List <Issue> issues, Dictionary <string, Result> results)
        {
            var model = new IssuesViewModel();

            foreach (var issue in issues)
            {
                var issueViewModel = new IssueViewModel();

                issueViewModel.IssueDetails = issue;

                issueViewModel.Results = results[issue.Id];

                model.Issues.Add(issueViewModel);
            }

            //sort issues by data
            return(model);
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> AddIssue(IssuesViewModel model)
        {
            Result result = new Result();

            try
            {
                var userDept = HttpContext.Session.GetString(SessionHelper.USER_DEPT);
                var userId   = HttpContext.Session.GetString(SessionHelper.USER_ID);
                var userRole = HttpContext.Session.GetString(SessionHelper.ROLES);
                var issue    = _mapper.Map <IssueDTO>(model);
                result = await _datasetService.AddIssue(issue, userId, userDept, userRole);
            }
            catch (Exception e)
            {
                _logger.LogError("Error Exception on DeleteDataSet: " + e.Message.ToString());
            }
            return(new EmptyResult());
        }
Ejemplo n.º 8
0
        public static ViewModelSection GetNewSection(ViewModels viewType, IServiceProvider _service)
        {
            ViewModelSection retView = null;

            switch (viewType)
            {
            case ViewModels.PlaneMeeting:
                retView      = new PlaneMeetingViewModel(_service);
                retView.Name = "Інформація про засідання";
                break;

            case ViewModels.Issues:
                retView      = new IssuesViewModel(_service);
                retView.Name = "Огляд протоколів";
                break;

            case ViewModels.ReqistryOfDecisions:
                retView      = new RegistryViewModel(_service);
                retView.Name = "Реєстр рішень";
                break;

            case ViewModels.Protocols:
                retView      = new ProtocolsViewModel(_service);
                retView.Name = "Перелік протоколів";
                break;

            case ViewModels.Filter:
                retView      = new FilterViewModel(_service);
                retView.Name = "Фільтр";
                break;

            case ViewModels.CreateMeeting:
                retView      = new CreateMeetingViewModel(_service);
                retView.Name = "Планування нового засідання";
                break;

            default:
                break;
            }

            return(retView);
        }
        private ActionResult GetIssuesViewOrRedirectToOnlyIssueForum()
        {
            var websiteDataAdapter = new WebsiteDataAdapter();

            var issueForums = websiteDataAdapter.SelectIssueForums().ToArray();

            var issueForumCount = websiteDataAdapter.SelectIssueForumCount();

            if (issueForums.Count() == 1)
            {
                return(RedirectToAction("Issues", new { issueForumPartialUrl = issueForums.First().PartialUrl }));
            }

            var issuesViewModel = new IssuesViewModel
            {
                IssueForums     = issueForums,
                IssueForumCount = issueForumCount
            };

            return(View("Issues", issuesViewModel));
        }
Ejemplo n.º 10
0
        public ActionResult Create()
        {
            if (User.Identity.OneTimePassword())
            {
                return(RedirectToAction("ChangePassword", "Manage"));
            }
            var userId   = User.Identity.GetUserId().ToString();
            var notRated = db.Issues.Where(i => i.UserId == userId && i.State == 1).ToList();

            if (notRated.Count > 1)
            {
                TempData["Fail"] = "W systemie istnieją usterki wykonane, ale nie zakończone. Przed dodaniem nowej usterki należy zamknąć poprzednie!";
                return(RedirectToAction("Index", "Home"));
            }
            var issueVM = new IssuesViewModel();

            issueVM.Types = db.Types.Select(c => new SelectListItem {
                Text = c.Name, Value = c.Id.ToString()
            });
            return(View(issueVM));
        }
Ejemplo n.º 11
0
        private async Task <Response> GetIssues(IssueStatus status)
        {
            var issues = await IssuesService.GetAllAsync();

            issues = await FilterIssuesAsync(issues, status == IssueStatus.ResolvedIssue);

            var issuesModels = issues as IssuesModel[] ?? issues.Where(x => x.IssueStatus == status).ToArray();
            var viewModel    = new List <IssuesViewModel>();

            foreach (var i in issuesModels)
            {
                var model = new IssuesViewModel {
                    Id = i.Id, RequestId = i.RequestId, Title = i.Title, Type = i.Type.ToString().ToCamelCaseWords(), Admin = Security.HasAnyPermissions(User, Permissions.Administrator, Permissions.ManageRequests)
                };

                // Create a string with all of the current issue states with a "," delimiter in e.g. Wrong Content, Playback Issues
                var state      = i.Issues.Select(x => x.Issue).ToArray();
                var issueState = string.Empty;
                for (var j = 0; j < state.Length; j++)
                {
                    var word = state[j].ToString().ToCamelCaseWords();
                    if (j != state.Length - 1)
                    {
                        issueState += $"{word}, ";
                    }
                    else
                    {
                        issueState += word;
                    }
                }
                model.Issues = issueState;

                viewModel.Add(model);
            }

            return(Response.AsJson(viewModel));
        }
 public DeleteIssuesCommand(IssuesViewModel isVM, IIssueDataService issueDataService)
 {
     _isVM             = isVM;
     _issueDataService = issueDataService;
 }
Ejemplo n.º 13
0
        private IssueListViewModel IssuesIndex(bool isActive, bool deleted = false)
        {
            var          issues     = new IssueListViewModel();
            List <Issue> issuesList = new List <Issue>();
            var          userId     = User.Identity.GetUserId();

            if (isActive)
            {
                issuesList = db.Issues.Where(i => i.State == 0 || i.State == 1).ToList();
            }
            else
            if (!deleted)
            {
                issuesList = db.Issues.Where(i => i.State == 2).ToList();
            }
            else
            {
                issuesList = db.Issues.Where(i => i.State == 3).ToList();
            }
            if (!User.IsInRole("Admin"))
            {
                var filteredIssues = new List <Issue>();
                if (User.IsInRole("ShowInformatics"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 1 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowHydraulics"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 2 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowElectrics"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 3 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowBuilding"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 4 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowOrdinal"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 5 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowPhones"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 6 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowResearch"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 7 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("ShowOthers"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.TypeId == 8 && i.UserId != userId).ToList());
                }
                if (User.IsInRole("User"))
                {
                    filteredIssues.AddRange(issuesList.Where(i => i.UserId == userId).ToList());
                }
                issuesList.Clear();
                issuesList.AddRange(filteredIssues);
            }
            if (issuesList.Count != 0)
            {
                foreach (var item in issuesList)
                {
                    var model = new IssuesViewModel();
                    model.Id    = item.Id;
                    model.Title = item.Title;
                    if (db.Users.Single(u => u.Id == item.UserId) != null)
                    {
                        model.userName = db.Users.Single(u => u.Id == item.UserId).UserName;
                    }
                    else
                    {
                        model.userName = "******";
                    }
                    model.TypeId          = item.TypeId;
                    model.StartDate       = item.StartDate;
                    model.TimeElapsed     = String.Format("{0:%d}d {0:%h}g {0:%m}m {0:%s}s", DateTime.Now - item.StartDate);
                    model.InventoryNumber = item.InventoryNumber;
                    issues.IssuesVM.Add(model);
                }
            }
            issues.Types = db.Types.Where(t => t.Active).Select(c => new SelectListItem {
                Text = c.Name, Value = c.Id.ToString()
            });
            return(issues);
        }
Ejemplo n.º 14
0
        public ActionResult Issues()
        {
            var model = new IssuesViewModel();

            return(View(model));
        }