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 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")); } }
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 })); } }
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()); } } }
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 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")); } }
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 })); } }
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 })); }
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()); }
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")); } }
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)); } }
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)); } }