コード例 #1
0
ファイル: TeamController.cs プロジェクト: mhej/ServiceDesk
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            Team team = await _db.Teams.FindAsync(id);

            Team defaultTeam = _db.Teams.FirstOrDefault();
            ClassificationAssignedToTeam defaultClassification = _db.ClassificationAssignedToTeam.Where(c => c.TeamId == defaultTeam.Id).FirstOrDefault();

            List <Request> requests = _db.Requests.Where(r => r.TeamId == team.Id).ToList();

            foreach (var item in requests)
            {
                item.Team   = defaultTeam;
                item.TeamId = defaultTeam.Id;

                item.ClassificationId = defaultClassification.ClassificationId;
                item.Classification   = _db.Classifications.Find(item.ClassificationId);

                item.Assignee   = null;
                item.AssigneeId = null;
            }


            _db.Teams.Remove(team);
            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
コード例 #2
0
        public async Task <IActionResult> Add(int id, TeamConfigClassificationsViewModel teamConfigClassificationsVM)
        {
            if (ModelState.IsValid)
            {
                ClassificationAssignedToTeam classificationAssignedToTeam = new ClassificationAssignedToTeam()
                {
                    ClassificationId = id,
                    TeamId           = teamConfigClassificationsVM.Team.Id,
                    Classification   = await _db.Classifications.FindAsync(id),
                    Team             = await _db.Teams.FindAsync(teamConfigClassificationsVM.Team.Id)
                };


                foreach (var classAssigned in _db.ClassificationAssignedToTeam)
                {
                    if (classAssigned.ClassificationId == classificationAssignedToTeam.ClassificationId && classAssigned.TeamId == classificationAssignedToTeam.TeamId)
                    {
                        return(RedirectToAction("Index", new { id = teamConfigClassificationsVM.Team.Id }));
                    }
                }


                await _db.ClassificationAssignedToTeam.AddAsync(classificationAssignedToTeam);


                TempData["Msg"] = "Classification has been added successfully";

                await _db.SaveChangesAsync();

                return(RedirectToAction("Index", new { id = teamConfigClassificationsVM.Team.Id }));
            }

            return(RedirectToAction("Index", "Team"));
        }
コード例 #3
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var classification = await _db.Classifications.FindAsync(id);

            List <Request> requests = _db.Requests.Where(r => r.ClassificationId == classification.Id).ToList();

            Team defaultTeam = _db.Teams.FirstOrDefault();
            ClassificationAssignedToTeam defaultClassification = new ClassificationAssignedToTeam();

            if (defaultTeam == null)
            {
                ModelState.AddModelError("", "There must be at least one team!");
                return(View(classification));
            }
            else
            {
                defaultClassification = _db.ClassificationAssignedToTeam.Where(c => c.TeamId == defaultTeam.Id && c.ClassificationId != classification.Id).FirstOrDefault();

                if (defaultClassification == null)
                {
                    ModelState.AddModelError("", $"There must be at least one category assigned to the {defaultTeam.Name} team!");
                }
            }


            if (ModelState.IsValid)
            {
                foreach (var item in requests)
                {
                    item.Team             = defaultTeam;
                    item.TeamId           = defaultTeam.Id;
                    item.Classification   = defaultClassification.Classification;
                    item.ClassificationId = defaultClassification.ClassificationId;
                    item.Assignee         = null;
                    item.AssigneeId       = null;
                }

                _db.Classifications.Remove(classification);
                await _db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(classification));
        }
コード例 #4
0
        public async Task <IActionResult> DeleteConfirmed(int id, TeamConfigClassificationsViewModel teamConfigClassificationsVM)
        {
            ClassificationAssignedToTeam classificationAssignedToTeam = new ClassificationAssignedToTeam()
            {
                ClassificationId = id,
                TeamId           = teamConfigClassificationsVM.Team.Id,
                Classification   = await _db.Classifications.FindAsync(id),
                Team             = await _db.Teams.FindAsync(teamConfigClassificationsVM.Team.Id)
            };

            foreach (var classAssigned in _db.ClassificationAssignedToTeam)
            {
                if (classAssigned.ClassificationId == classificationAssignedToTeam.ClassificationId && classAssigned.TeamId == classificationAssignedToTeam.TeamId)
                {
                    _db.ClassificationAssignedToTeam.Remove(classAssigned);
                    TempData["Msg"] = "Classification has been removed successfully";
                }
            }

            await _db.SaveChangesAsync();

            return(RedirectToAction("Index", new { id = teamConfigClassificationsVM.Team.Id }));
        }
コード例 #5
0
        public async Task <IActionResult> Create(Request request)
        {
            Team defaultTeam = _db.Teams.FirstOrDefault();
            ClassificationAssignedToTeam defaultClassification = new ClassificationAssignedToTeam();

            if (defaultTeam == null)
            {
                ModelState.AddModelError("", "There must be at least one team!");
            }
            else
            {
                defaultClassification = _db.ClassificationAssignedToTeam.Where(c => c.TeamId == defaultTeam.Id).FirstOrDefault();

                if (defaultClassification == null)
                {
                    ModelState.AddModelError("", $"There must be at least one category assigned to the {defaultTeam.Name} team!");
                }
            }

            if (ModelState.IsValid)
            {
                request.Status     = Utilities.RequestStatus.New;
                request.SubmitDate = DateTime.Now;
                request.Team       = defaultTeam;
                request.Requestor  = (ApplicationUser)await _userManager.GetUserAsync(HttpContext.User);

                request.Classification = _db.Classifications.Find(defaultClassification.ClassificationId);

                _db.Add(request);
                await _db.SaveChangesAsync();



                string webRootPath = _hostingEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;

                var requestFromDb = _db.Requests.Find(request.Id);



                if (files.Count != 0)
                {
                    //Image has been uploaded
                    var uploads  = Path.Combine(webRootPath, @"images\screens\");
                    var fileName = files[0].FileName;

                    using (var filestream = new FileStream(Path.Combine(uploads, fileName), FileMode.Create))
                    {
                        files[0].CopyTo(filestream);
                    }

                    Image image = new Image()
                    {
                        Name = fileName
                    };

                    _db.Image.Add(image);

                    ImagesAssignedToRequest imageAssignedToRequest = new ImagesAssignedToRequest()
                    {
                        RequestId = request.Id,
                        Request   = await _db.Requests.FindAsync(request.Id),
                        Image     = image
                    };

                    await _db.ImagesAssignedToRequest.AddAsync(imageAssignedToRequest);
                }

                await _db.SaveChangesAsync();

                return(RedirectToAction("Index", "Requests", new { id = request.Id }));
            }

            return(View(request));
        }