예제 #1
0
        public ActionResult Get(string id)
        {
            if (!Sitecore.Context.User.IsAuthenticated)
            {
                return(Redirect($"{WebUtil.GetFullUrl(Factory.GetSiteInfo("shell").LoginPage)}?returnUrl={Request.RawUrl}"));
            }

            Guid issueId;

            if (Guid.TryParse(id, out issueId))
            {
                var issue          = _dependencies.SitecoreServiceMaster.GetItem <IIssue>(issueId);
                var articleService = DependencyResolver.Current.GetService <IArticleService>();

                if (issue != null)
                {
                    var model = new AddIssueViewModel {
                        Issue          = issue,
                        Articles       = _dependencies.IssuesService.GetArticles(issueId),
                        ArticleService = articleService
                    };
                    return(View("~/Areas/VWB/Views/AddIssue.cshtml", model));
                }
            }

            return(Redirect("/vwb"));
        }
예제 #2
0
        public HttpResponse Add(AddIssueViewModel model, string carId)
        {
            if (this.userService.UserIsMechanic(this.User.Id))
            {
                return(Unauthorized());
            }

            var car = this.data.Cars
                      .FirstOrDefault(c => c.Id == carId);

            var modelErrors = this.validator.ValidateIssueCreation(model);

            if (car == null)
            {
                modelErrors.Add($"Car with {carId} does not exist.");
            }

            if (modelErrors.Any())
            {
                return(Error(modelErrors));
            }

            var newIssue = new Issue
            {
                Description = model.Description,
                CarId       = carId,
                IsFixed     = false
            };

            car.Issues.Add(newIssue);

            this.data.SaveChanges();

            return(Redirect("/Cars/All"));
        }
예제 #3
0
        public HttpResponse Add(string carId)
        {
            var model = new AddIssueViewModel
            {
                CarId = carId
            };

            return(View(model));
        }
예제 #4
0
        public ICollection <string> ValidateIssueCreation(AddIssueViewModel model)
        {
            var errors = new List <string>();

            if (model.Description.Length < 5)
            {
                errors.Add($"Description must be longer than 5 characters long.");
            }

            return(errors);
        }
예제 #5
0
        public void AddIssue(AddIssueViewModel viewModel)
        {
            var issue = new Issue
            {
                Description = viewModel.Description,
                CarId       = viewModel.CarId,
                IsFixed     = false,
            };

            dbContext.Issues.Add(issue);
            dbContext.SaveChanges();
        }
예제 #6
0
        public IHttpResponse Add()
        {
            var statusValues   = Enum.GetValues(typeof(Status));
            var priorityValues = Enum.GetValues(typeof(Priority));

            var model = new AddIssueViewModel()
            {
                StatusValues   = statusValues,
                PriorityValues = priorityValues
            };

            return(this.View(model));
        }
예제 #7
0
        public HttpResponse Add(AddIssueViewModel model)
        {
            var issue = new Issue
            {
                CarId       = model.CarId,
                Description = model.Description,
            };

            this.data.Issues.Add(issue);

            this.data.SaveChanges();

            return(Redirect($"/Issues/CarIssues?CarId={model.CarId}"));
        }
예제 #8
0
        public HttpResponse Add(string carId)
        {
            if (!this.IsUserSignedIn())
            {
                return(this.Redirect("/Users/Login"));
            }

            var model = new AddIssueViewModel()
            {
                CarId = carId,
            };

            return(this.View(model));
        }
예제 #9
0
        public HttpResponse Add(AddIssueViewModel viewModel)
        {
            if (!usersService.IsMechanic(User.Id) && !carsService.IsOwner(viewModel.CarId, User.Id))
            {
                return(Unauthorized());
            }

            if (viewModel.Description.Length < 5)
            {
                return(Error("Description must be at least 5 characters long."));
            }

            carsService.AddIssue(viewModel);
            return(Redirect($"/Issues/CarIssues?carId={viewModel.CarId}"));
        }
예제 #10
0
        public EditIssueView(AddIssueViewModel issueView, StackLayout mainLayout)
        {
            //Xamarin.Forms.Forms.SetFlags("CollectionView_Experimental");
            InitializeComponent();

            this.ClassId = "EditIssueView";
            //issueNumber = "Issue #165161";
            //IssueNumberLbl.Text = issueNumber;
            Issue = issueView;

            view.IssueId             = Issue.IssueId;
            commentEditor.Completed += view.EditIssueView_CommentsCommentPropChanged;
            PlusIconGrd.GestureRecognizers.Add(view.PlusGestureRecognizer);
            SaveBtn.CommandParameter = MenuPageDetail.MenuPageDetailStatic;
            view.MainPage            = MenuPageDetail.MenuPageDetailStatic;

            _mainContent = mainLayout;
        }
예제 #11
0
        public HttpResponse Add(string carId)
        {
            if (usersService.IsMechanic(User.Id) && !carsService.HasUnfixedIssue(carId))
            {
                return(Unauthorized());
            }

            if (!usersService.IsMechanic(User.Id) && !carsService.IsOwner(carId, User.Id))
            {
                return(Unauthorized());
            }

            var model = new AddIssueViewModel
            {
                CarId = carId,
            };

            return(View(model));
        }
예제 #12
0
        public async Task <IActionResult> AddIssue([FromBody] AddIssueViewModel ivm)
        {
            if (ivm == null)
            {
                return(BadRequest());
            }

            // find signed in user
            var user = await db.Users.FirstOrDefaultAsync(u => u.Username == User.Identity.Name);

            // find item type
            var itemType = await db.WeeklyItemTypes.FirstOrDefaultAsync(wit => wit.Name == "ISSUE");

            // find component
            var component = await db.Components.FirstOrDefaultAsync(c => c.Name == ivm.ComponentName);

            Issue i = new Issue {
                Component      = component,
                RepoIdentifier = ivm.RepoIdentifier,
                Number         = ivm.IssueNumber
            };

            await db.Issues.AddAsync(i);

            UserWeeklyItem item = new UserWeeklyItem {
                Type      = itemType,
                Item_Id   = i.Id,
                User      = user,
                RowNumber = ivm.RowNumber,
                Date      = ivm.Date
            };

            await db.UserWeeklyItems.AddAsync(item);

            await db.SaveChangesAsync();

            return(Ok(i));
        }
 public AddIssueCommand(AddIssueViewModel addVM, IIssueDataService issueDataService)
 {
     _addVM            = addVM;
     _issueDataService = issueDataService;
 }