Esempio n. 1
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));
        }
Esempio n. 2
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"));
            }
        }
Esempio n. 3
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 }));
            }
        }
Esempio n. 4
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());
                }
            }
        }
Esempio n. 5
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);
     }
 }
Esempio n. 6
0
        public ActionResult StartProject(int projectId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                ProjectModel project = db.Projects.Include("ProjectOwner").Include("Manager").Where(x => x.ProjectId.Equals(projectId)).FirstOrDefault();
                project.ProjectStartDate = DateTime.Now;
                project.ProjectStatus    = ProjectStatus.InProgress;

                if (project.Manager != null)
                {
                    project.UsersBelongsToProject += string.Format(",{0}", project.Manager.UserId);
                }

                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();
                    user.ProjectsInProgress++;
                    db.Entry(user).State = EntityState.Modified;
                    db.Notifications.Add(new NotificationModel {
                        Project = project, NotificationType = NotificationTypes.RozpoczecieProjektu, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = user, Title = "Rozpoczęcie projektu", Content = string.Format("Projekt {0} został rozpoczęty.", project.ProjectTitle)
                    });
                    db.SaveChanges();
                }
                var ProjectOwner = db.UserAccounts.Where(x => x.UserId.Equals(project.ProjectOwner.UserId)).FirstOrDefault();

                if (project.ProjectManagementMethodology == 0)
                {
                    project.ProjectManagementMethodology = ProjectManagementMethodology.Kanban;
                }

                db.Notifications.Add(new NotificationModel {
                    Project = project, NotificationType = NotificationTypes.RozpoczecieProjektu, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = ProjectOwner, Title = "Rozpoczęcie projektu", Content = string.Format("Projekt {0} został rozpoczęty.", project.ProjectTitle)
                });
                ProjectOwner.ProjectsInProgress++;
                db.Entry(ProjectOwner).State = EntityState.Modified;
                db.Entry(project).State      = EntityState.Modified;

                db.SaveChanges();

                return(View("StartProject"));
            }
        }
Esempio n. 7
0
        public ActionResult RateUser(RateModel rate)
        {
            double RatesSum = 0;

            using (DbContextModel db = new DbContextModel())
            {
                int userWhoAddRateIdInt = Convert.ToInt32(System.Web.HttpContext.Current.Session["UserId"]);
                rate.Project        = db.Projects.Where(x => x.ProjectId.Equals(rate.Project.ProjectId)).FirstOrDefault();
                rate.UserWhoGetRate = db.UserAccounts.Where(x => x.UserId.Equals(rate.UserWhoGetRate.UserId)).FirstOrDefault();
                rate.UserWhoAddRate = db.UserAccounts.Where(x => x.UserId.Equals(userWhoAddRateIdInt)).FirstOrDefault();

                RatesSum += (double)rate.Communication;
                RatesSum += (double)rate.MeetingTheConditions;
                RatesSum += (double)rate.Professionalism;
                RatesSum += (double)rate.WantToCoworkAgain;
                if (rate.UserWhoGetRate.Role.ToString() == "Pracownik")
                {
                    RatesSum += (double)rate.Punctuality;
                    RatesSum += (double)rate.Quality;
                    RatesSum += (double)rate.Skills;
                    string roundedAverageRate = string.Format("{0:0.00}", RatesSum / 7);
                    rate.AverageRate = Convert.ToDouble(roundedAverageRate);
                }
                else if (rate.UserWhoGetRate.Role.ToString() == "Menadzer")
                {
                    RatesSum += (double)rate.ManageSkills;
                    string roundedAverageRate = string.Format("{0:0.00}", RatesSum / 5);
                    rate.AverageRate = Convert.ToDouble(roundedAverageRate);
                }
                else
                {
                    string roundedAverageRate = string.Format("{0:0.00}", RatesSum / 4);
                    rate.AverageRate = Convert.ToDouble(roundedAverageRate);
                }
                var    userRates   = db.Rates.Where(x => x.UserWhoGetRate.UserId.Equals(x.UserWhoGetRate.UserId)).ToList();
                double oldRatesSum = 0;
                foreach (var oldRate in userRates)
                {
                    oldRatesSum += oldRate.AverageRate;
                }
                oldRatesSum += rate.AverageRate;
                double oldRatesCount = Convert.ToDouble(userRates.Count());
                oldRatesCount++;
                string roundedAverageRateOverall = string.Format("{0:0.00}", oldRatesSum / oldRatesCount);
                rate.UserWhoGetRate.AverageRate = Convert.ToDouble(roundedAverageRateOverall);
                rate.RateDate = DateTime.Now;
                db.Entry(rate.UserWhoGetRate).State = EntityState.Modified;
                db.Notifications.Add(new NotificationModel {
                    Project = rate.Project, NotificationType = NotificationTypes.NowaOcena, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = rate.UserWhoGetRate, Title = "Nowa ocena", Content = string.Format("Użytkownik {0} wystawił Ci ocenę za projekt {1}. Średnia ocen to: {2}", rate.UserWhoAddRate.Username, rate.Project.ProjectTitle, rate.AverageRate)
                });
                db.Rates.Add(rate);
                db.SaveChanges();
            }
            return(RedirectToAction("RateUsersFromProject", new { projectId = rate.Project.ProjectId }));
        }
 public ActionResult MarkScrumSprintAsFinished(int projectId, int scrumSprintId)
 {
     using (DbContextModel db = new DbContextModel())
     {
         var scrumSprint = db.ScrumSprints.Where(x => x.ScrumSprintId == scrumSprintId).FirstOrDefault();
         scrumSprint.FinishScrumSprintDate = DateTime.Now;
         scrumSprint.IsFinished            = true;
         db.Entry(scrumSprint).State       = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("ScrumBoard", "ProjectPanel", new { projectId = projectId }));
     }
 }
Esempio n. 9
0
        public ActionResult ConnectProjectWithManager(int projectId, ManageOnline.Models.ProjectManagementMethodology projectManagementMethodology)
        {
            int managerId = Convert.ToInt32(Session["UserId"]);

            using (DbContextModel db = new DbContextModel())
            {
                var project = db.Projects.Where(x => x.ProjectId.Equals(projectId)).FirstOrDefault();
                var manager = db.UserAccounts.Where(x => x.UserId.Equals(managerId)).FirstOrDefault();
                project.ProjectManagementMethodology = projectManagementMethodology;
                project.Manager         = manager;
                db.Entry(project).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(RedirectToAction("ProjectDetails", "Project", new { id = projectId }));
        }
Esempio n. 10
0
        public ActionResult SetProjectAsFinished(int projectId)
        {
            ViewBag.ProjectId = projectId;
            using (DbContextModel db = new DbContextModel())
            {
                ProjectModel project = db.Projects.Include("ProjectOwner").Where(x => x.ProjectId.Equals(projectId)).FirstOrDefault();
                project.ProjectFinishDate = DateTime.Now;
                project.ProjectStatus     = ProjectStatus.Finished;

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

                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();
                    user.ProjectsInProgress--;
                    user.FinishedProjects++;
                    db.Entry(user).State = EntityState.Modified;
                    db.Notifications.Add(new NotificationModel {
                        Project = project, NotificationType = NotificationTypes.ZakonczenieProjektu, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = user, Title = "Zakończenie projektu", Content = string.Format("Projekt {0} został zakończony. Możesz teraz ocenić inne osoby, które brały udział w projekcie.", project.ProjectTitle)
                    });
                    db.SaveChanges();
                }
                project.ProjectOwner.ProjectsInProgress--;
                project.ProjectOwner.FinishedProjects++;
                db.Entry(project.ProjectOwner).State = EntityState.Modified;
                db.Entry(project).State = EntityState.Modified;
                db.Notifications.Add(new NotificationModel {
                    Project = project, NotificationType = NotificationTypes.ZakonczenieProjektu, IsSeen = false, DateSend = DateTime.Now, NotificationReceiver = project.ProjectOwner, Title = "Zakończenie projektu", Content = string.Format("Projekt {0} został zakończony. Możesz teraz ocenić inne osoby, które brały udział w projekcie.", project.ProjectTitle)
                });
                db.SaveChanges();
            }
            return(View());
        }
Esempio n. 11
0
        public ActionResult EditOfferToProject(OfferToProjectModel offerToProject)
        {
            using (DbContextModel db = new DbContextModel())
            {
                db.Configuration.LazyLoadingEnabled = false;

                OfferToProjectModel oldOffer = db.OfferToProjectModels.FirstOrDefault(x => x.OfferToProjectId.Equals(offerToProject.OfferToProjectId));
                oldOffer.Budget      = offerToProject.Budget;
                oldOffer.Description = offerToProject.Description;
                oldOffer.EstimatedTimeToFinishProject = offerToProject.EstimatedTimeToFinishProject;

                db.Entry(oldOffer).State = EntityState.Modified;
                db.SaveChanges();
                return(View("SuccessfullEditOffer"));
            }
        }
Esempio n. 12
0
        public ActionResult ShowMessageDetails(int messageId)
        {
            using (DbContextModel db = new DbContextModel())
            {
                int userIdInt = Convert.ToInt32(System.Web.HttpContext.Current.Session["UserId"]);
                var message   = db.Messages.Include("Receiver")
                                .Include("Sender")
                                .Where(x => x.MessageId.Equals(messageId)).FirstOrDefault();

                if (!message.IsSeen && message.Receiver.UserId == userIdInt)
                {
                    message.IsSeen = true;
                }
                db.Entry(message).State = EntityState.Modified;
                db.SaveChanges();
                return(PartialView("_messageDetails", message));
            }
        }
Esempio n. 13
0
        public ActionResult EditAccount(UserBasicModel userAfterEdit, HttpPostedFileBase file)
        {
            int UserId = Convert.ToInt32(Session["UserId"]);

            using (DbContextModel db = new DbContextModel())
            {
                if (userAfterEdit.SkillsArray != null)
                {
                    userAfterEdit.Skills = string.Join(",", userAfterEdit.SkillsArray);
                }

                UserBasicModel user = db.UserAccounts.FirstOrDefault(u => u.UserId.Equals(UserId));
                user.MobileNumber  = userAfterEdit.MobileNumber;
                user.DisplayedRole = userAfterEdit.DisplayedRole;
                user.Description   = userAfterEdit.Description;
                if (file != null)
                {
                    byte[] data = FileHandler.GetBytesFromFile(file);
                    user.UserPhoto = data;
                }
                user.Skills          = userAfterEdit.Skills;
                db.Entry(user).State = EntityState.Modified;
                try
                {
                    db.SaveChanges();
                }
                catch
                {
                    ViewBag.MessageAfterEditProfileDetails = "Edycja danych nie powiodła się";
                }
                ViewBag.MessageAfterEditProfileDetails = "Edycja danych przebiegła pomyślnie";
                if (user.SkillsArray != null)
                {
                    user.SkillsArray = user.Skills.Split(',').ToArray();
                }
                var             skills = db.Skills.ToList();
                MultiSelectList list   = new MultiSelectList(skills, "SkillId", "SkillName");
                ViewBag.Skills = list;
                return(View(user));
            }
        }