示例#1
0
        public ActionResult Index(RolesIndexVM model)
        {
            if (AuthenticationManager.LoggedUser == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            model.Pager              = model.Pager ?? new PagerVM();
            model.Pager.Page         = model.Pager.Page <= 0 ? 1 : model.Pager.Page;
            model.Pager.ItemsPerPage = model.Pager.ItemsPerPage <= 0 ? 10 : model.Pager.ItemsPerPage;

            model.FilterVm = model.FilterVm ?? new RolesFilterVM();

            bool emptyName = string.IsNullOrWhiteSpace(model.FilterVm.Name);

            OvmDbContext      context = new OvmDbContext();
            IQueryable <Role> query   = context.Roles.Where(r => emptyName || r.Name.Contains(model.FilterVm.Name));

            model.Pager.PagesCount = (int)Math.Ceiling(query.Count() / (double)model.Pager.ItemsPerPage);

            query = query.OrderBy(r => r.Id).Skip((model.Pager.Page - 1) * model.Pager.ItemsPerPage).Take(model.Pager.ItemsPerPage);

            model.Items = query.Select(r => new RolesVM
            {
                Id   = r.Id,
                Name = r.Name,
                AssignedUsersCount = r.Users.Count
            }).ToList();

            context.Dispose();

            return(View(model));
        }
示例#2
0
        public ActionResult Details(int id)
        {
            OvmDbContext context = new OvmDbContext();
            Team         team    = context.Teams.Find(id);

            TeamsDetailsVM model = new TeamsDetailsVM
            {
                Id      = id,
                Name    = team.Name,
                Project = team.Project == null
                    ? null
                    : new ProjectsPair
                {
                    Name = team.Project.Name,
                    Id   = team.Project.Id
                },
                Developers = team.Developers.Select(u => new UsersVM
                {
                    Id        = u.Id,
                    Username  = u.Username,
                    RoleName  = u.Role.Name,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                }).ToList(),
                TeamLead = team.TeamLead != null
                    ? new UsersPair
                {
                    Id       = team.TeamLead.Id,
                    Username = team.TeamLead.Username
                }
                    : null
            };

            return(View(model));
        }
        public ActionResult Edit(int?id)
        {
            UsersEditVM item;

            if (id == null)
            {
                item = new UsersEditVM();
            }
            else
            {
                User user = this._userRepository.GetOne(id.Value);

                item = new UsersEditVM
                {
                    Id        = id.Value,
                    FirstName = user.FirstName,
                    LastName  = user.LastName,
                    Username  = user.Username,
                    Password  = user.Password,
                    RoleId    = user.RoleId,
                };
            }

            OvmDbContext context = new OvmDbContext();

            item.Roles = context.Roles.Select(r => new RolesPair
            {
                Name = r.Name,
                Id   = r.Id
            }).ToList();

            context.Dispose();

            return(View(item));
        }
示例#4
0
        public ActionResult Edit(TeamsEditVM model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            OvmDbContext context = new OvmDbContext();

            Team team = new Team();

            team.Id   = model.Id;
            team.Name = model.Name;

            if (model.ProjectId != 0)
            {
                team.ProjectId = model.ProjectId;
            }

            context.Teams.AddOrUpdate(t => t.Id, team);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
示例#5
0
        public ActionResult Edit(int?id)
        {
            TeamsEditVM  item;
            OvmDbContext context = new OvmDbContext();

            if (id == null)
            {
                item = new TeamsEditVM();
            }
            else
            {
                Team team = context.Teams.Find(id.Value);

                item = new TeamsEditVM
                {
                    Id        = id.Value,
                    Name      = team.Name,
                    ProjectId = team.ProjectId ?? 0
                };
            }

            item.Projects = context.Projects.Select(p => new ProjectsPair
            {
                Name = p.Name,
                Id   = p.Id
            }).ToList();

            context.Dispose();

            return(View(item));
        }
        public ActionResult Edit(int?id)
        {
            ProjectsEditVM model;

            if (id == null)
            {
                model = new ProjectsEditVM();
            }
            else
            {
                OvmDbContext context = new OvmDbContext();
                Project      project = context.Projects.Find(id.Value);

                model = new ProjectsEditVM
                {
                    Id          = id.Value,
                    Name        = project.Name,
                    Description = project.Description
                };

                context.Dispose();
            }

            return(View(model));
        }
示例#7
0
        public ActionResult DownloadAttachment(int id)
        {
            OvmDbContext context        = new OvmDbContext();
            SickTimeOff  sto            = context.SickTimeOffs.Find(id);
            string       attachmentPath = sto.AttachmentPath;

            return(File(attachmentPath, System.Net.Mime.MediaTypeNames.Application.Octet,
                        Path.GetFileName(attachmentPath)));
        }
示例#8
0
        public ActionResult DeleteUnpaid(int id)
        {
            OvmDbContext  context = new OvmDbContext();
            UnpaidTimeOff pto     = context.UnpaidTimeOffs.Find(id);

            context.UnpaidTimeOffs.Remove(pto);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
示例#9
0
        public ActionResult ApproveSick(int id)
        {
            OvmDbContext context = new OvmDbContext();
            SickTimeOff  sto     = context.SickTimeOffs.Find(id);

            sto.IsApproved = true;
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("AllRequests"));
        }
        public ActionResult AssignTeam(ProjectsAssignVM model)
        {
            OvmDbContext context = new OvmDbContext();
            Team         team    = context.Teams.Find(model.TeamId);

            team.ProjectId = model.ProjectId;
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Details", "Projects", new { Id = model.ProjectId }));
        }
示例#11
0
        public ActionResult DeleteSick(int id)
        {
            OvmDbContext context = new OvmDbContext();
            SickTimeOff  sto     = context.SickTimeOffs.Find(id);

            StorageService.DeleteFile(sto.AttachmentPath);
            context.SickTimeOffs.Remove(sto);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
示例#12
0
        public ActionResult AssignDeveloper(TeamsAssignVM model)
        {
            OvmDbContext context = new OvmDbContext();
            User         user    = context.Users.Find(model.UserId);

            user.TeamId = model.Id;

            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Details", "Teams", new { Id = model.Id }));
        }
        public ActionResult Delete(int id)
        {
            OvmDbContext context = new OvmDbContext();
            Project      project = context.Projects.Find(id);

            project.Teams.Clear();
            context.Projects.Remove(project);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
示例#14
0
        public ActionResult RemoveDeveloper(int teamId, int id)
        {
            OvmDbContext context = new OvmDbContext();
            User         user    = context.Users.Find(id);

            user.TeamId = null;
            user.Team   = null;
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Details", "Teams", new { Id = teamId }));
        }
示例#15
0
        public ActionResult RemoveProject(int id)
        {
            OvmDbContext context = new OvmDbContext();
            Team         team    = context.Teams.Find(id);

            team.Project   = null;
            team.ProjectId = null;
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Details", "Teams", new { Id = id }));
        }
示例#16
0
        public ActionResult AssignTeamLead(TeamsAssignVM model)
        {
            OvmDbContext context = new OvmDbContext();
            Team         team    = context.Teams.Find(model.Id);

            team.TeamLeadId = model.UserId;

            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Details", "Teams", new { Id = model.Id }));
        }
示例#17
0
        public ActionResult Delete(int id)
        {
            OvmDbContext context = new OvmDbContext();
            Team         team    = context.Teams.Find(id);

            team.Developers.Clear();
            context.Teams.Remove(team);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
示例#18
0
        public ActionResult AssignDeveloper(int id)
        {
            OvmDbContext  context = new OvmDbContext();
            TeamsAssignVM model   = new TeamsAssignVM
            {
                Users = context.Users.Where(u => u.Role.Name == "Developer" && u.Team == null).Select(u =>
                                                                                                      new UsersPair()
                {
                    Id = u.Id, Username = u.Username
                }).ToList()
            };

            context.Dispose();

            return(View(model));
        }
        public ActionResult Assign(int id)
        {
            OvmDbContext context = new OvmDbContext();

            UsersAssignVM model = new UsersAssignVM
            {
                Id    = id,
                Teams = context.Teams.Select(t => new TeamsPair {
                    Name = t.Name, Id = t.Id
                }).ToList()
            };

            context.Dispose();

            return(View(model));
        }
示例#20
0
        public ActionResult Edit(RolesEditVM model)
        {
            OvmDbContext context = new OvmDbContext();

            Role role = new Role
            {
                Id   = model.Id,
                Name = model.Name
            };

            context.Roles.AddOrUpdate(u => u.Id, role);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
示例#21
0
        public ActionResult AssignTeamLead(int id)
        {
            OvmDbContext  context = new OvmDbContext();
            TeamsAssignVM model   = new TeamsAssignVM
            {
                Id    = id,
                Users = context.Users.Where(u => u.Role.Name == "Team Lead" && u.LedTeams.FirstOrDefault(t => t.Id == id) == null)
                        .Select(u => new UsersPair {
                    Id = u.Id, Username = u.Username
                })
                        .ToList()
            };

            context.Dispose();

            return(View(model));
        }
示例#22
0
        public ActionResult Delete(int id)
        {
            OvmDbContext context        = new OvmDbContext();
            Role         role           = context.Roles.Find(id);
            Role         unassignedRole = context.Roles.FirstOrDefault(r => r.Name == "Unassigned");

            foreach (User assignedUser in role.Users)
            {
                assignedUser.Role = unassignedRole ?? new Role("Unassigned");
            }

            context.Roles.Remove(role);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }
        public ActionResult AssignTeam(int id)
        {
            OvmDbContext     context = new OvmDbContext();
            ProjectsAssignVM model   = new ProjectsAssignVM
            {
                TeamId = id,
                Teams  = context.Teams.Where(t => t.Project == null)
                         .Select(t => new TeamsPair {
                    Id = t.Id, Name = t.Name
                }).ToList(),
                ProjectId = id
            };

            context.Dispose();

            return(View(model));
        }
示例#24
0
        public ActionResult EditSick(int?id)
        {
            SickTimeOffsEditVM model   = new SickTimeOffsEditVM();
            OvmDbContext       context = new OvmDbContext();

            if (id != null)
            {
                SickTimeOff pto = context.SickTimeOffs.Find(id.Value);
                model.To             = pto.To;
                model.From           = pto.From;
                model.Id             = pto.Id;
                model.AttachmentPath = pto.AttachmentPath;
            }

            context.Dispose();

            return(View(model));
        }
示例#25
0
        public ActionResult EditUnpaid(int?id)
        {
            UnpaidTimeOffsEditVM model   = new UnpaidTimeOffsEditVM();
            OvmDbContext         context = new OvmDbContext();

            if (id != null)
            {
                UnpaidTimeOff pto = context.UnpaidTimeOffs.Find(id.Value);
                model.To        = pto.To;
                model.From      = pto.From;
                model.IsHalfDay = pto.IsHalfDay;
                model.Id        = pto.Id;
            }

            context.Dispose();

            return(View(model));
        }
示例#26
0
        public ActionResult DetailsSick(int id)
        {
            OvmDbContext context = new OvmDbContext();
            SickTimeOff  sto     = context.SickTimeOffs.Find(id);

            SickTimeOffsDetailsVM model = new SickTimeOffsDetailsVM
            {
                Id            = sto.Id,
                From          = sto.From,
                To            = sto.To,
                IsApproved    = sto.IsApproved,
                LastChangedOn = sto.CreatedOn,
            };

            context.Dispose();

            return(View(model));
        }
示例#27
0
        public static void Seed(OvmDbContext context)
        {
            context.Teams.Add(new Team
            {
                Name = "BDE Team"
            });

            context.Projects.Add(new Project
            {
                Name        = "BDE Project",
                Description = "Initial project"
            });

            context.Users.Add(new User
            {
                FirstName = "CEO",
                LastName  = "CEO",
                Password  = "******",
                Username  = "******",
                Role      = new Role("CEO"),
            });

            context.Users.Add(new User()
            {
                FirstName = "Dev",
                LastName  = "Dev",
                Username  = "******",
                Password  = "******",
                Role      = new Role("Developer")
            });

            context.Users.Add(new User()
            {
                FirstName = "Team",
                LastName  = "Lead",
                Username  = "******",
                Password  = "******",
                Role      = new Role("Team Lead")
            });

            context.Roles.Add(new Role("Unassigned"));

            context.SaveChanges();
        }
示例#28
0
        public ActionResult Details(int id)
        {
            OvmDbContext context = new OvmDbContext();
            Role         role    = context.Roles.Find(id);

            RolesDetailsVM model = new RolesDetailsVM
            {
                Name  = role.Name,
                Users = role.Users.Select(u => new UsersVM
                {
                    Id        = u.Id,
                    Username  = u.Username,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                }).ToList()
            };

            return(View(model));
        }
示例#29
0
        public ActionResult Index(TeamsIndexVM model)
        {
            if (AuthenticationManager.LoggedUser == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            model.Pager              = model.Pager ?? new PagerVM();
            model.Pager.Page         = model.Pager.Page <= 0 ? 1 : model.Pager.Page;
            model.Pager.ItemsPerPage = model.Pager.ItemsPerPage <= 0 ? 10 : model.Pager.ItemsPerPage;

            model.FilterVm = model.FilterVm ?? new TeamsFilterVM();

            bool emptyProjectName = string.IsNullOrWhiteSpace(model.FilterVm.ProjectName);
            bool emptyTeamName    = string.IsNullOrWhiteSpace(model.FilterVm.TeamName);

            OvmDbContext context = new OvmDbContext();

            IQueryable <Team> query = context.Teams.Where(t =>
                                                          (emptyProjectName || t.Project.Name.Contains(model.FilterVm.ProjectName)) &&
                                                          (emptyTeamName || t.Name.Contains(model.FilterVm.TeamName)));

            model.Pager.PagesCount = (int)Math.Ceiling(query.Count() / (double)(model.Pager.ItemsPerPage));

            query       = query.OrderBy(t => t.Id).Skip((model.Pager.Page - 1) * model.Pager.ItemsPerPage).Take(model.Pager.ItemsPerPage);
            model.Items = query.Select(t => new TeamsVM
            {
                Id          = t.Id,
                Name        = t.Name,
                ProjectPair = t.Project != null ? new ProjectsPair
                {
                    Id   = t.ProjectId.Value,
                    Name = t.Project.Name
                } : null,
                TeamLeadName = t.TeamLead.Username ?? string.Empty,
                TeamSize     = t.Developers.Count
            }).ToList();

            context.Dispose();

            return(View(model));
        }
示例#30
0
        public ActionResult EditUnpaid(UnpaidTimeOffsEditVM model)
        {
            OvmDbContext context = new OvmDbContext();

            UnpaidTimeOff uto = new UnpaidTimeOff
            {
                Id          = model.Id,
                CreatedOn   = DateTime.Now,
                RequestorId = AuthenticationManager.LoggedUser.Id,
                From        = model.From,
                To          = model.To,
                IsHalfDay   = model.IsHalfDay
            };

            context.UnpaidTimeOffs.AddOrUpdate(pt => pt.Id, uto);
            context.SaveChanges();
            context.Dispose();

            return(RedirectToAction("Index"));
        }