public ActionResult AddCommentToTheTask(CommentModel comment)
        {
            using (DbContextModel db = new DbContextModel())
            {
                int userIdInt = Convert.ToInt32(Session["UserId"]);
                comment.DateWhenCommentWasAdded   = DateTime.Now;
                comment.ProjectWhereCommentBelong = db.Projects.Where(x => x.ProjectId == comment.ProjectWhereCommentBelong.ProjectId).FirstOrDefault();
                comment.TaskWhereCommentBelong    = db.Tasks.Include("CurrentWorkerAtTask").Include("UserWhoAddTask").Where(x => x.TaskId == comment.TaskWhereCommentBelong.TaskId).FirstOrDefault();
                comment.UserWhoAddComment         = db.UserAccounts.Where(x => x.UserId == userIdInt).FirstOrDefault();
                db.Notifications.Add(new NotificationModel {
                    Project = comment.ProjectWhereCommentBelong, NotificationType = NotificationTypes.NowyKomentarzDoZadania, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = comment.TaskWhereCommentBelong.UserWhoAddTask, Title = "Nowy komentarz do twojego zadania", Content = string.Format("Użytkownik ({0}) skomentował twoje zadanie  {1} w projekcie {2}. ", comment.UserWhoAddComment.Username, comment.TaskWhereCommentBelong.TaskName, comment.ProjectWhereCommentBelong.ProjectTitle)
                });
                if (comment.TaskWhereCommentBelong.UserWhoAddTask != comment.TaskWhereCommentBelong.CurrentWorkerAtTask)
                {
                    db.Notifications.Add(new NotificationModel {
                        Project = comment.ProjectWhereCommentBelong, NotificationType = NotificationTypes.NowyKomentarzDoZadania, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = comment.TaskWhereCommentBelong.CurrentWorkerAtTask, Title = "Nowy komentarz do twojego zadania", Content = string.Format("Użytkownik ({0}) skomentował twoje zadanie  {1} w projekcie {2}. ", comment.UserWhoAddComment.Username, comment.TaskWhereCommentBelong.TaskName, comment.ProjectWhereCommentBelong.ProjectTitle)
                    });
                }
                db.Comments.Add(comment);
                db.SaveChanges();

                if (comment.ProjectWhereCommentBelong.ProjectManagementMethodology == ManageOnline.Models.ProjectManagementMethodology.Scrum)
                {
                    return(RedirectToAction("ScrumBoard", "ProjectPanel", new { projectId = comment.TaskWhereCommentBelong.Project.ProjectId }));
                }
                return(RedirectToAction("KanbanBoard", "ProjectPanel", new { projectId = comment.TaskWhereCommentBelong.Project.ProjectId }));
            }
        }
 public ActionResult AddScrumSprint(int projectId, int scrumSprintLengthInDays)
 {
     using (DbContextModel db = new DbContextModel())
     {
         ScrumSprintModel scrumSprint = new ScrumSprintModel();
         scrumSprint.Project = db.Projects.Where(x => x.ProjectId == projectId).FirstOrDefault();
         scrumSprint.StartScrumSprintDate    = DateTime.Now;
         scrumSprint.FinishScrumSprintDate   = DateTime.Now.AddDays(scrumSprintLengthInDays);
         scrumSprint.ScrumSprintLengthInDays = scrumSprintLengthInDays;
         var lastSprint = db.ScrumSprints.Where(x => x.Project.ProjectId == projectId).OrderByDescending(x => x.ScrumSprintNumber).FirstOrDefault();
         int sprintNumber;
         if (lastSprint != null)
         {
             sprintNumber = lastSprint.ScrumSprintNumber + 1;
         }
         else
         {
             sprintNumber = 1;
         }
         scrumSprint.ScrumSprintNumber = sprintNumber;
         db.ScrumSprints.Add(scrumSprint);
         db.SaveChanges();
     }
     return(RedirectToAction("ScrumBoard", new { projectId = projectId }));
 }
        // GET: ProjectPanel
        public ActionResult ProjectPanel(int projectId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                var project = db.Projects
                              .Include("ProjectOwner")
                              .Include("SkillsRequiredToProjectCollection")
                              .Include("ProjectCategory")
                              .Include("Tasks.CurrentWorkerAtTask")
                              .Include("Tasks.UserWhoAddTask")
                              .Include("UsersBelongsToProjectCollection")
                              .Where(x => x.ProjectId.Equals(projectId))
                              .FirstOrDefault();

                var categoriesList = db.Categories.ToList();
                var skills         = db.Skills.ToList();

                project.ProjectCategory = categoriesList.Where(x => x.CategoryId.Equals(project.ProjectCategory.CategoryId)).FirstOrDefault();
                if (project.SkillsRequiredToProject != null)
                {
                    project.SkillsRequiredToProjectArray      = project.SkillsRequiredToProject.Split(',').ToArray();
                    project.SkillsRequiredToProjectCollection = new Collection <SkillsModel>();
                    foreach (var skillId in project.SkillsRequiredToProjectArray)
                    {
                        var skillIdInt = Convert.ToInt32(skillId);
                        var skill      = skills.Where(x => x.SkillId.Equals(skillIdInt)).FirstOrDefault();
                        project.SkillsRequiredToProjectCollection.Add(skill);
                    }
                }
                ViewBag.ProjectManagementMethodology = project.ProjectManagementMethodology;
                return(View(project));
            }
        }
        public ActionResult KanbanBoard(int projectId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                var project = db.Projects
                              .Include("ProjectOwner")
                              .Include("SkillsRequiredToProjectCollection")
                              .Include("ProjectCategory")
                              .Include("Tasks.CurrentWorkerAtTask")
                              .Include("Tasks.UserWhoAddTask")
                              .Include("UsersBelongsToProjectCollection")
                              .Where(x => x.ProjectId.Equals(projectId))
                              .FirstOrDefault();

                ViewBag.CountAllTasks        = project.Tasks.Count();
                ViewBag.CountNotStartedTasks = project.Tasks.Where(x => x.TaskStatus == TaskStatus.NotStarted).Count();
                ViewBag.CountInProgressTasks = project.Tasks.Where(x => x.TaskStatus == TaskStatus.InProgress).Count();
                ViewBag.CountFinishedTasks   = project.Tasks.Where(x => x.TaskStatus == TaskStatus.Finished).Count();
                var progressBarNotStartedTasksWidth = (((double)ViewBag.CountNotStartedTasks / (double)ViewBag.CountAllTasks) * 100).ToString();
                ViewBag.progressBarNotStartedTasksWidth = progressBarNotStartedTasksWidth.Replace(",", ".");
                var progressBarInProgressTasksWidth = (((double)ViewBag.CountInProgressTasks / (double)ViewBag.CountAllTasks) * 100).ToString();
                ViewBag.progressBarInProgressTasksWidth = progressBarInProgressTasksWidth.Replace(",", ".");
                var progressBarFinishedTasksWidth = (((double)ViewBag.CountFinishedTasks / (double)ViewBag.CountAllTasks) * 100).ToString();
                ViewBag.progressBarFinishedTasksWidth = progressBarFinishedTasksWidth.Replace(",", ".");
                return(View(project));
            }
        }
        public ActionResult AddProject(ProjectModel project)
        {
            using (DbContextModel db = new DbContextModel())
            {
                int UserId = Convert.ToInt32(Session["UserId"]);
                project.ProjectCreationDate = DateTime.Now;
                project.ProjectOwner        = db.UserAccounts.FirstOrDefault(u => u.UserId.Equals(UserId));
                project.ProjectStatus       = ProjectStatus.WaitingForOffers;
                project.ProjectCategory     = db.Categories.Where(x => x.CategoryId == project.ProjectCategory.CategoryId).FirstOrDefault();
                if (project.SkillsRequiredToProjectArray != null)
                {
                    project.SkillsRequiredToProject = string.Join(",", project.SkillsRequiredToProjectArray);
                }

                db.Projects.Add(project);
                db.SaveChanges();
                if (project.IsRequiredManager)
                {
                    var managers = db.UserAccounts.Where(x => x.Role == Roles.Manager).ToList();
                    foreach (var manager in managers)
                    {
                        db.Notifications.Add(new NotificationModel {
                            Project = project, NotificationType = NotificationTypes.NowyProjektZMenadzerem, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = manager, Title = "Nowy projekt wymagający menadżera", Content = string.Format("Pojawił się nowy projekt ({0}) wymagający nadzoru menadżerskiego. ", project.ProjectTitle)
                        });
                        db.SaveChanges();
                    }
                }
            }
            return(View("SuccessfullAddProject"));
        }
 public ActionResult Login(UserBasicModel user)
 {
     using (DbContextModel db = new DbContextModel())
     {
         var currentUser = db.UserAccounts.Where(u => u.Username == user.Username).FirstOrDefault();
         if (currentUser != null)
         {
             if ((string.Compare(Crypto.Hash(user.Password), currentUser.Password) == 0))
             {
                 System.Web.HttpContext.Current.Session["UserId"]   = currentUser.UserId.ToString();
                 System.Web.HttpContext.Current.Session["Username"] = currentUser.Username.ToString().ToLower();
                 System.Web.HttpContext.Current.Session["Role"]     = currentUser.Role.ToString();
                 if (currentUser.Role == Roles.Admin)
                 {
                     return(RedirectToAction("AdminDashboard", "Admin"));
                 }
                 return(RedirectToAction("DashboardIndex", "Dashboard"));
             }
             else
             {
                 ViewBag.Message = "Podane hasło jest nieprawidłowe";
             }
         }
         else
         {
             ViewBag.Message = "Podany użytkownik nie istnieje";
         }
     }
     return(View());
 }
示例#7
0
        public IEnumerable <TranslationModel> GetTranslations(string filteredResults)
        {
            using (DbContextModel DbContext = new DbContextModel())
            {
                var translationsList = DbContext.Translations
                                       .Include("contents")
                                       .Include("error")
                                       .Include("success")
                                       .OrderByDescending(x => x.Date)
                                       .ToList();

                if (filteredResults == "properlyTranslations")
                {
                    var filteredTranslationsList = translationsList.Where(x => x.IsSuccessStatusCode == true).ToList();
                    return(filteredTranslationsList);
                }

                else if (filteredResults == "errors")
                {
                    var filteredTranslationsList = translationsList.Where(x => x.IsSuccessStatusCode == false).ToList();
                    return(filteredTranslationsList);
                }

                return(translationsList);
            }
        }
        public ActionResult SearchProjects()
        {
            using (DbContextModel db = new DbContextModel())
            {
                var dataContext = db.Projects
                                  .Include("ProjectOwner")
                                  .Include("SkillsRequiredToProjectCollection")
                                  .Include("ProjectCategory")
                                  .OrderByDescending(x => x.ProjectCreationDate)
                                  .ToList();

                foreach (var project in dataContext)
                {
                    if (project.SkillsRequiredToProject != null)
                    {
                        var skills = db.Skills.ToList();
                        project.SkillsRequiredToProjectArray      = project.SkillsRequiredToProject.Split(',').ToArray();
                        project.SkillsRequiredToProjectCollection = new Collection <SkillsModel>();
                        foreach (var skillId in project.SkillsRequiredToProjectArray)
                        {
                            var skillIdInt = Convert.ToInt32(skillId);
                            var skill      = skills.Where(x => x.SkillId.Equals(skillIdInt)).FirstOrDefault();
                            project.SkillsRequiredToProjectCollection.Add(skill);
                        }
                    }
                }
                return(View(dataContext));
            }
        }
示例#9
0
        public ActionResult ShowManagers()
        {
            using (DbContextModel db = new DbContextModel())
            {
                db.Configuration.LazyLoadingEnabled = false;
                var             managers   = db.UserAccounts.Where(x => x.Role == Roles.Manager).ToList();
                var             skills     = db.Skills.ToList();
                MultiSelectList skillsList = new MultiSelectList(skills, "SkillId", "SkillName");

                if ((TempData["Skills"] as MultiSelectList) != null)
                {
                    var selectedSkillsSelectList = TempData["Skills"] as MultiSelectList;
                    var selectedSkills           = selectedSkillsSelectList.Items;
                }

                TempData["Skills"] = skillsList;

                foreach (var manager in managers)
                {
                    if (manager.Skills != null)
                    {
                        manager.SkillsArray = manager.Skills.Split(',').ToArray();
                        foreach (var skillId in manager.SkillsArray)
                        {
                            var skillIdInt = Convert.ToInt32(skillId);
                            var skill      = db.Skills.Where(x => x.SkillId.Equals(skillIdInt)).FirstOrDefault();
                            manager.SkillsCollection.Add(skill);
                        }
                    }
                }

                return(View(managers));
            }
        }
示例#10
0
        public ActionResult AddTask(TaskModel task)
        {
            int userIdInt = Convert.ToInt32(Session["UserId"]);

            using (DbContextModel db = new DbContextModel())
            {
                task.TaskCreationDate    = DateTime.Now;
                task.Project             = db.Projects.Where(x => x.ProjectId.Equals(task.ProjectId)).FirstOrDefault();
                task.UserWhoAddTask      = db.UserAccounts.Where(x => x.UserId.Equals(userIdInt)).FirstOrDefault();
                task.CurrentWorkerAtTask = db.UserAccounts.Where(x => x.UserId.Equals(task.CurrentWorkerAtTask.UserId)).FirstOrDefault();
                var currentSprint = db.ScrumSprints.Where(x => x.ScrumSprintId == task.ScrumSprintWhereTaskBelong.ScrumSprintId).FirstOrDefault();
                if (task.ScrumSprintWhereTaskBelong != null)
                {
                    task.ScrumSprintWhereTaskBelong = currentSprint;
                }
                if (task.Project.ProjectManagementMethodology == ProjectManagementMethodology.Kanban)
                {
                    task.ScrumSprintWhereTaskBelong = null;
                }

                db.Tasks.Add(task);
                db.Notifications.Add(new NotificationModel {
                    Project = task.Project, NotificationType = NotificationTypes.NoweZadanie, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = task.CurrentWorkerAtTask, Title = "Nowe zadanie", Content = string.Format("Użytkownik {0} przypisał Ci zadanie: {1}", task.UserWhoAddTask.Username, task.TaskName)
                });
                db.SaveChanges();
            }
            if (task.ScrumSprintWhereTaskBelong != null)
            {
                return(RedirectToAction("ScrumBoard", "ProjectPanel", new { projectId = task.ProjectId }));
            }
            return(RedirectToAction("KanbanBoard", "ProjectPanel", new { projectId = task.ProjectId }));
        }
示例#11
0
        public ActionResult EditCustomer(int id)
        {
            using (DbContextModel db = new DbContextModel())
            {
                try
                {
                    var customer = db.Customers.Include("Address").Where(x => x.Id == id).FirstOrDefault();

                    var        countries     = CountriesManager.LoadAllCountriesFromFile();
                    SelectList countriesList = new SelectList(countries, "Country");
                    if ((TempData["Countries"] as SelectList) != null)
                    {
                        var countriesSelectList = TempData["Countries"] as SelectList;
                        var selectedCountries   = countriesSelectList.Items;
                    }

                    TempData["Countries"] = countriesList;

                    return(View("EditCustomer", customer));
                }
                catch (Exception)
                {
                    return(RedirectToAction("Customers"));
                }
            }
        }
示例#12
0
        public ActionResult SendInvitationToProject(NotificationModel notificationInvitationToProject)
        {
            int userWhoSendInvitationId = Convert.ToInt32(Session["UserId"]);

            using (DbContextModel db = new DbContextModel())
            {
                var projectsFromUser = db.Projects
                                       .Include("ProjectOwner")
                                       .Include("OffersToProject")
                                       .Include("OffersToProject.UserWhoAddOffer")
                                       .Include("OffersToProject.WorkerProposedToProject")
                                       .Where(x => x.ProjectStatus == ProjectStatus.WaitingForOffers && x.ProjectOwner.UserId == userWhoSendInvitationId && x.OffersToProject.Any(item => item.UserWhoAddOffer.UserId.ToString() == notificationInvitationToProject.NotificationReceiver.UserId.ToString()) == false)
                                       .ToList();
                ViewBag.projectsFromUser = projectsFromUser;

                var userWhoSendInvitation = db.UserAccounts.Where(x => x.UserId.Equals(userWhoSendInvitationId)).FirstOrDefault();
                notificationInvitationToProject.NotificationReceiver = db.UserAccounts.Where(x => x.UserId.Equals(notificationInvitationToProject.NotificationReceiver.UserId)).FirstOrDefault();
                notificationInvitationToProject.Project          = db.Projects.Where(x => x.ProjectId.Equals(notificationInvitationToProject.Project.ProjectId)).FirstOrDefault();
                notificationInvitationToProject.IsSeen           = false;
                notificationInvitationToProject.DateSend         = DateTime.Now;
                notificationInvitationToProject.NotificationType = NotificationTypes.ZaproszenieDoProjektu;
                notificationInvitationToProject.Title            = "Zaproszenie do projektu";
                notificationInvitationToProject.Content          = string.Format("Użytkownik {0} przesłał Ci zaproszenie do złożenia oferty w projekcie {1}.", userWhoSendInvitation.Username, notificationInvitationToProject.Project.ProjectTitle);
                db.Notifications.Add(notificationInvitationToProject);
                db.SaveChanges();
                TempData["SuccessfulSendInvitation"] = "Zaproszenie do projektu zostało przesłane.";
                return(RedirectToAction("ProfileDetails", "Account", new { id = notificationInvitationToProject.NotificationReceiver.UserId }));
            }
        }
示例#13
0
 public static bool EditCustomer(CustomerModel customer)
 {
     try
     {
         using (DbContextModel db = new DbContextModel())
         {
             CustomerModel customerToEdit = db.Customers.Include("Address").FirstOrDefault(x => x.Id == customer.Id);
             customerToEdit.Name                = customer.Name;
             customerToEdit.Surname             = customer.Surname;
             customerToEdit.TelephoneNumber     = customer.TelephoneNumber;
             customerToEdit.Address.Country     = customer.Address.Country;
             customerToEdit.Address.City        = customer.Address.City;
             customerToEdit.Address.PostalCode  = customer.Address.PostalCode;
             customerToEdit.Address.Street      = customer.Address.Street;
             customerToEdit.Address.HouseNumber = customer.Address.HouseNumber;
             customerToEdit.Address.FlatNumber  = customer.Address.FlatNumber;
             db.Entry(customerToEdit).State     = EntityState.Modified;
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public static IServiceCollection AddDbConnection([NotNull] this IServiceCollection service, [NotNull] DbOption dbOption)
        {
            service.AddTransient(c => dbOption.dbConnection as DbConnection);

            if (dbOption.dbType == DbType.DbEnum.Mysql)
            {
                service.AddTransient <IDbExtend, MySqlDbExtend>();
            }
            else if (dbOption.dbType == DbType.DbEnum.SqlServer)
            {
                service.AddTransient <IDbExtend, SqlServerDbExtend>();
                //sqlserve 在第二次获取上下文对象时,连接字符串为空(原因未知),需要重新为对象赋值
                DbContextModel dbContext = new DbContextModel()
                {
                    connStr = dbOption.dbConnStr
                };
                service.AddTransient(c => dbContext);
            }
            else if (dbOption.dbType == DbType.DbEnum.Oracle)
            {
                service.AddTransient <IDbExtend, OracleDbExtend>();
            }
            else
            {
                throw new AttrSqlException("无法识别的数据库类型.");
            }
            return(service);
        }
示例#15
0
        public ActionResult AddProjectToPortfolio(PortfolioProjectModel portfolioProject, HttpPostedFileBase file)
        {
            int userIdInt = Convert.ToInt32(Session["UserId"]);

            using (DbContextModel db = new DbContextModel())
            {
                portfolioProject.EmployeeId = db.UserAccounts.Where(x => x.UserId.Equals(userIdInt)).FirstOrDefault();
                if (file != null)
                {
                    byte[] data = FileHandler.GetBytesFromFile(file);
                    portfolioProject.ProjectImage = data;
                }
                db.PortfolioProjects.Add(portfolioProject);
                try
                {
                    db.SaveChanges();
                    ViewBag.MessageAfterEditProfileDetails = "Edycja danych przebiegła pomyślnie.";
                }
                catch (Exception ex)
                {
                    ViewBag.MessageAfterEditProfileDetails = "Edycja danych się nie udała." + ex.Message;
                    return(View());
                }
            }
            return(RedirectToAction("EditAccount", "Account"));
        }
示例#16
0
        public ActionResult EditTask(TaskModel task)
        {
            using (DbContextModel db = new DbContextModel())
            {
                var taskToEdit = db.Tasks.Include("UserWhoAddTask")
                                 .Include("CurrentWorkerAtTask")
                                 .Include("Project")
                                 .Include("Comments")
                                 .Include("Comments.UserWhoAddComment")
                                 .Include("Comments.ProjectWhereCommentBelong")
                                 .Where(x => x.TaskId.Equals(task.TaskId)).FirstOrDefault();

                taskToEdit.TaskName            = task.TaskName;
                taskToEdit.TaskDescription     = task.TaskDescription;
                taskToEdit.CurrentWorkerAtTask = db.UserAccounts.Where(x => x.UserId == task.CurrentWorkerAtTask.UserId).FirstOrDefault();
                taskToEdit.TaskStatus          = task.TaskStatus;
                if (task.TaskStatus == ManageOnline.Models.TaskStatus.InProgress)
                {
                    taskToEdit.TaskStartDate = DateTime.Now;
                }
                else if (task.TaskStatus == ManageOnline.Models.TaskStatus.Finished)
                {
                    taskToEdit.TaskFinishDate = DateTime.Now;
                }

                db.Entry(taskToEdit).State = EntityState.Modified;
                db.SaveChanges();
                if (taskToEdit.Project.ProjectManagementMethodology == ManageOnline.Models.ProjectManagementMethodology.Scrum)
                {
                    return(RedirectToAction("ScrumBoard", "ProjectPanel", new { projectId = taskToEdit.Project.ProjectId }));
                }
                return(RedirectToAction("KanbanBoard", "ProjectPanel", new { projectId = taskToEdit.Project.ProjectId }));
            }
        }
示例#17
0
 public ActionResult AddManagerAccount(UserBasicModel manager)
 {
     using (DbContextModel db = new DbContextModel())
     {
         var user = db.UserAccounts.SingleOrDefault(u => u.Username == manager.Username);
         if (user != null)
         {
             ViewBag.Message = "Użytkownik o podanym loginie już istnieje.";
         }
         else
         {
             var password = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create()
                                                   .ComputeHash(Encoding.UTF8.GetBytes(manager.Password)));
             var confirmPassword = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create()
                                                          .ComputeHash(Encoding.UTF8.GetBytes(manager.ConfirmPassword)));
             manager.Username        = manager.Username.ToLower();
             manager.Password        = password;
             manager.ConfirmPassword = confirmPassword;
             manager.Role            = Roles.Manager;
             byte[] data = System.Text.Encoding.ASCII.GetBytes("0");
             db.UserAccounts.Add(manager);
             db.SaveChanges();
         }
     }
     return(View("AdminDashboard"));
 }
示例#18
0
        public ActionResult AddTaskToSprint(int projectId, int scrumSprintId)
        {
            TaskModel task = new TaskModel();

            task.CurrentWorkerAtTask = new UserBasicModel();
            task.ProjectId           = projectId;
            using (DbContextModel db = new DbContextModel())
            {
                ICollection <UserBasicModel> usersBelongsToProject = new Collection <UserBasicModel>();

                var project = db.Projects.Include("ScrumSprints").Where(x => x.ProjectId.Equals(projectId)).FirstOrDefault();
                project.UsersBelongsToProjectArray = project.UsersBelongsToProject.Split(',').ToArray();

                foreach (var userId in project.UsersBelongsToProjectArray)
                {
                    int userIdInt = Convert.ToInt32(userId);
                    var user      = db.UserAccounts.Where(x => x.UserId.Equals(userIdInt)).FirstOrDefault();
                    usersBelongsToProject.Add(user);
                }

                task.ScrumSprintWhereTaskBelong = db.ScrumSprints.Where(x => x.ScrumSprintId == scrumSprintId).FirstOrDefault();
                ViewBag.SprintNumber            = task.ScrumSprintWhereTaskBelong.ScrumSprintNumber;
                ViewBag.Users = usersBelongsToProject;

                return(PartialView("_addTask", task));
            }
        }
示例#19
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            using (DbContextModel db = new DbContextModel())
            {
                var adminAccount = db.UserAccounts.Where(x => x.Role == Roles.Admin).FirstOrDefault();
                if (adminAccount == null)
                {
                    var password = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create()
                                                          .ComputeHash(Encoding.UTF8.GetBytes("filip123")));
                    var confirmPassword = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create()
                                                                 .ComputeHash(Encoding.UTF8.GetBytes("filip123")));
                    adminAccount = new UserBasicModel()
                    {
                        Username = "******", Email = "*****@*****.**", MobileNumber = "511 114 421", Role = Roles.Admin
                    };
                    adminAccount.Password        = password;
                    adminAccount.ConfirmPassword = confirmPassword;
                    byte[] image = System.IO.File.ReadAllBytes(Server.MapPath("~/Content/Images/icons8-administrator-mężczyzna-480.png"));
                    adminAccount.UserPhoto = image;
                    db.UserAccounts.Add(adminAccount);
                    db.SaveChanges();
                }
            }
        }
示例#20
0
        // GET: Employees
        public ActionResult EmployeesList()
        {
            using (DbContextModel db = new DbContextModel())
            {
                var workersList = db.UserAccounts.Where(u => u.Role == Roles.Pracownik).ToList();

                var             skills     = db.Skills.ToList();
                MultiSelectList skillsList = new MultiSelectList(skills, "SkillId", "SkillName");

                if ((TempData["Skills"] as MultiSelectList) != null)
                {
                    var selectedSkillsSelectList = TempData["Skills"] as MultiSelectList;
                    var selectedSkills           = selectedSkillsSelectList.Items;
                }

                TempData["Skills"] = skillsList;

                foreach (var employee in workersList)
                {
                    if (employee.Skills != null)
                    {
                        employee.SkillsArray = employee.Skills.Split(',').ToArray();
                        foreach (var skillId in employee.SkillsArray)
                        {
                            var skillIdInt = Convert.ToInt32(skillId);
                            var skill      = db.Skills.Where(x => x.SkillId.Equals(skillIdInt)).FirstOrDefault();
                            employee.SkillsCollection.Add(skill);
                        }
                    }
                }

                return(View(workersList));
            }
        }
示例#21
0
        public ActionResult ChangePasswordAdmin(string confirmOldPassword, string newPassword, string confirmNewPassword)
        {
            using (DbContextModel db = new DbContextModel())
            {
                int UserId = Convert.ToInt32(Session["UserId"]);

                UserBasicModel userToEdit        = db.UserAccounts.FirstOrDefault(u => u.UserId.Equals(UserId));
                var            oldPasswordHashed = Crypto.Hash(confirmOldPassword);

                if ((string.Compare(userToEdit.Password, oldPasswordHashed) == 0))
                {
                    if (newPassword == confirmNewPassword)
                    {
                        userToEdit.Password        = Crypto.Hash(newPassword);
                        userToEdit.ConfirmPassword = Crypto.Hash(confirmNewPassword);
                        db.Entry(userToEdit).State = EntityState.Modified;
                        db.SaveChanges();
                        ViewBag.MessageInfoRight = "Hasło zostało zmienione.";
                        return(View());
                    }
                    else
                    {
                        ViewBag.MessageInfoWrong = "Potwierdź poprawnie nowe hasło.";
                        return(View());
                    }
                }
                else
                {
                    ViewBag.MessageInfoWrong = "Podałeś nieprawidłowe aktualne hasło.";
                    return(View());
                }
            }
        }
示例#22
0
        public ActionResult ProjectDetails(int id)
        {
            using (DbContextModel db = new DbContextModel())
            {
                db.Configuration.LazyLoadingEnabled = false;
                var projectDetailsInfo = db.Projects
                                         .Include("ProjectOwner")
                                         .Include("OffersToProject")
                                         .Include("OffersToProject.UserWhoAddOffer")
                                         .Include("Manager")
                                         .Include("OffersToProject.WorkerProposedToProject")
                                         .Include("ProjectCategory")
                                         .FirstOrDefault(p => p.ProjectId.Equals(id));

                var categoriesList = db.Categories.ToList();
                var skills         = db.Skills.ToList();

                if (projectDetailsInfo.SkillsRequiredToProject != null)
                {
                    projectDetailsInfo.SkillsRequiredToProjectArray      = projectDetailsInfo.SkillsRequiredToProject.Split(',').ToArray();
                    projectDetailsInfo.SkillsRequiredToProjectCollection = new Collection <SkillsModel>();
                    foreach (var skillId in projectDetailsInfo.SkillsRequiredToProjectArray)
                    {
                        var skillIdInt = Convert.ToInt32(skillId);
                        var skill      = skills.Where(x => x.SkillId.Equals(skillIdInt)).FirstOrDefault();
                        projectDetailsInfo.SkillsRequiredToProjectCollection.Add(skill);
                    }
                }

                return(View(projectDetailsInfo));
            }
        }
示例#23
0
        public ActionResult Register(UserBasicModel userAccount)
        {
            var rolesList = new List <Roles>();

            rolesList.Add(Roles.Pracownik);
            rolesList.Add(Roles.Klient);
            ViewBag.Roles = new SelectList(rolesList);
            if (ModelState.IsValid)
            {
                using (DbContextModel db = new DbContextModel())
                {
                    var user = db.UserAccounts.SingleOrDefault(u => u.Username == userAccount.Username);
                    if (user != null)
                    {
                        ViewBag.Message = "Użytkownik o podanym loginie już istnieje.";
                    }
                    else
                    {
                        userAccount.Username        = userAccount.Username.ToLower();
                        userAccount.Password        = Crypto.Hash(userAccount.Password);
                        userAccount.ConfirmPassword = Crypto.Hash(userAccount.ConfirmPassword);
                        byte[] data = System.Text.Encoding.ASCII.GetBytes("0");
                        db.UserAccounts.Add(userAccount);
                        db.SaveChanges();
                        ModelState.Clear();
                        ViewBag.Message = "Poprawnie się zarejestrowałeś " + userAccount.Username;
                    }
                }
            }
            return(View());
        }
示例#24
0
        public ActionResult AdmitSelectedProject(int projectId, int offerId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                db.Configuration.LazyLoadingEnabled = false;
                ProjectModel        project = db.Projects.Where(x => x.ProjectId.Equals(projectId)).FirstOrDefault();
                OfferToProjectModel offer   = db.OfferToProjectModels.Where(x => x.OfferToProjectId.Equals(offerId)).Include("WorkerProposedToProject").FirstOrDefault();
                if (project.UsersBelongsToProject == null)
                {
                    project.UsersBelongsToProject = offer.WorkerProposedToProject.UserId.ToString();
                }
                else
                {
                    project.UsersBelongsToProject += "," + offer.WorkerProposedToProject.UserId.ToString();
                }

                db.Notifications.Add(new NotificationModel {
                    Project = project, NotificationType = NotificationTypes.WybranieOfertyRealizacjiProjektu, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = offer.WorkerProposedToProject, Title = "Zaakceptowanie oferty realizacji projektu", Content = string.Format("Twoja oferta realizacji projektu została wybrana w projekcie {0}.", project.ProjectTitle)
                });

                db.Entry(project).State = EntityState.Modified;
                db.SaveChanges();

                return(View("SuccessfulAdmitProject"));
            }
        }
示例#25
0
        public ActionResult EditTask(int taskId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                var task = db.Tasks.Include("UserWhoAddTask")
                           .Include("CurrentWorkerAtTask")
                           .Include("Project")
                           .Include("Comments")
                           .Include("Comments.UserWhoAddComment")
                           .Include("Comments.ProjectWhereCommentBelong")
                           .Include("ScrumSprintWhereTaskBelong")
                           .Where(x => x.TaskId.Equals(taskId)).FirstOrDefault();

                ICollection <UserBasicModel> usersBelongsToProject = new Collection <UserBasicModel>();

                var project = db.Projects.Where(x => x.ProjectId.Equals(task.Project.ProjectId)).FirstOrDefault();
                project.UsersBelongsToProjectArray = project.UsersBelongsToProject.Split(',').ToArray();

                foreach (var userId in project.UsersBelongsToProjectArray)
                {
                    int userIdInt = Convert.ToInt32(userId);
                    var user      = db.UserAccounts.Where(x => x.UserId.Equals(userIdInt)).FirstOrDefault();
                    usersBelongsToProject.Add(user);
                }


                ViewBag.Users = usersBelongsToProject;

                return(PartialView("_editTask", task));
            }
        }
示例#26
0
        public ActionResult UpdateTaskPosition(string column1, string column2, string column3, int projectId)
        {
            var column1Tasks = column1.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
            var column2Tasks = column2.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
            var column3Tasks = column3.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();

            using (DbContextModel db = new DbContextModel())
            {
                var tasks = db.Projects
                            .Include("Tasks.CurrentWorkerAtTask")
                            .Include("Tasks.UserWhoAddTask")
                            .Include("UsersBelongsToProjectCollection")
                            .Where(x => x.ProjectId.Equals(projectId))
                            .ToList();

                int counter1 = 1;
                foreach (var itemId in column1Tasks)
                {
                    TaskModel task = db.Tasks.Where(x => x.TaskId.Equals(itemId)).FirstOrDefault();
                    task.RowNumber       = counter1;
                    task.ColumnNumber    = 1;
                    db.Entry(task).State = EntityState.Modified;
                    task.TaskStatus      = TaskStatus.NotStarted;
                    db.SaveChanges();
                    counter1++;
                }
                int counter2 = 1;
                foreach (var itemId in column2Tasks)
                {
                    TaskModel task = db.Tasks.Where(x => x.TaskId.Equals(itemId)).FirstOrDefault();
                    task.RowNumber    = counter2;
                    task.ColumnNumber = 2;
                    task.TaskStatus   = TaskStatus.InProgress;
                    if (task.TaskStartDate == null)
                    {
                        task.TaskStartDate = DateTime.Now;
                    }
                    db.Entry(task).State = EntityState.Modified;
                    db.SaveChanges();
                    counter2++;
                }
                int counter3 = 1;
                foreach (var itemId in column3Tasks)
                {
                    TaskModel task = db.Tasks.Where(x => x.TaskId.Equals(itemId)).FirstOrDefault();
                    task.RowNumber    = counter3;
                    task.ColumnNumber = 3;
                    task.TaskStatus   = TaskStatus.Finished;
                    if (task.TaskFinishDate == null)
                    {
                        task.TaskFinishDate = DateTime.Now;
                    }
                    db.Entry(task).State = EntityState.Modified;
                    db.SaveChanges();
                    counter3++;
                }
            }
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
        public FileResult DownloadFile(int fileId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                var file = db.Files.Where(x => x.FileId.Equals(fileId)).First();

                return(File(file.FilePath, "application/force-download", Path.GetFileName(file.FilePath)));
            }
        }
示例#28
0
 // GET: Admin
 public ActionResult AdminDashboard()
 {
     using (DbContextModel db = new DbContextModel())
     {
         int            UserId       = Convert.ToInt32(Session["UserId"]);
         UserBasicModel adminAccount = db.UserAccounts.FirstOrDefault(u => u.UserId.Equals(UserId));
         return(View(adminAccount));
     }
 }
示例#29
0
        public ActionResult NotificationsInfo()
        {
            using (DbContextModel db = new DbContextModel())
            {
                var userId = Convert.ToInt32(System.Web.HttpContext.Current.Session["UserId"]);

                ViewBag.NotificationsNotSeenCount = db.Notifications.Include("NotificationReceiver").OrderByDescending(x => x.DateSend).Where(x => x.NotificationReceiver.UserId == userId && !x.IsSeen).Count();
                return(PartialView("_notificationsInfo"));
            }
        }
示例#30
0
        public ActionResult AddOfferToProject(int projectId)
        {
            OfferToProjectModel offerToProject = new OfferToProjectModel();

            using (DbContextModel db = new DbContextModel())
            {
                offerToProject.ProjectWhereOfferWasAdded = db.Projects.FirstOrDefault(p => p.ProjectId.Equals(projectId));
                return(View(offerToProject));
            }
        }