// GET: Project/Edit/5 public ActionResult Edit(string id) { //All users var users = _unitOfWork.UserRepositry.GetAll().ToList(); //current project var currentProject = _unitOfWork.ProjectRepositry.GetProjectsWithClientAndUsersAndTasksWithFiles(id); var currentManager = GetManagerForProject(currentProject.Id); //get current project var viewmodel = new CreateProjectViewModels() { Project = currentProject, Users = users, Clients = _unitOfWork.ClientRepositry.GetAll().ToList(), Manager = currentManager }; if (User.IsInRole("Admin")) { return(View(viewmodel)); } else { return(View("EditByManager", viewmodel)); } }
// GET: Project/Create public ActionResult Create() { var viewmodel = new CreateProjectViewModels() { Project = new Project() { StartTime = DateTime.Now, DeadTime = DateTime.Now.AddDays(66) }, Users = _unitOfWork.UserRepositry.GetAll().ToList(), }; return(View(viewmodel)); }
public ActionResult Create(CreateProjectViewModels viewmodel, string __UserId__, int status, HttpPostedFileBase upload) { try { if (viewmodel == null) { return(HttpNotFound()); } //if (!ModelState.IsValid) //{ // var errors = ModelState.Values.SelectMany(vr => vr.Errors); // var s = ModelState.Values; // var v = new IndexViewModels() // { // Project = new Project(), // Users = _unitOfWork.UserRepositry.GetAll().ToList(), // Clients = _unitOfWork.ClientRepositry.GetAll().ToList() // }; // return View(v); //} //Add To Projects..we need user,client,to add them to project //get client //Note , here i send Name of client but i name ClientId in that form //var client = _unitOfWork.ClientRepositry.SingleOrDefault(c => c.Name == ClientId); //only corspond data will be set ,so users,clinet will be null var newProject = new Project() { Id = viewmodel.Project.Id, Name = viewmodel.Project.Name, DeadTime = viewmodel.Project.DeadTime, StartTime = viewmodel.Project.StartTime, Status = (StatusEnum)Enum.ToObject(typeof(StatusEnum), status), Description = viewmodel.Project.Description, ClientId = 1, Users = new List <ApplicationUser>(),//this is must ProjectFiles = new List <MyProjectFile>() }; //get user manager if (!__UserId__.IsEmpty()) { var userManager = _unitOfWork.UserRepositry.SingleOrDefault(u => u.Id == __UserId__); //Add this manger //newProject.Users.Add(user); var pm = new ProjectManagerTable() { ManagerID = userManager.Id, ProjectID = viewmodel.Project.Id }; _unitOfWork.ProjectMangerRepositry.Add(pm); } //Guid is used as a file name on the basis that it can pretty much guarantee uniqueness if (upload != null && upload.ContentLength > 0) { var photo = new MyProjectFile() { FileName = Guid.NewGuid().ToString() + System.IO.Path.GetExtension(upload.FileName), MyFileType = MyFileType.Photo }; string physicalPath = Server.MapPath("~/images/" + photo.FileName); // save image in folder upload.SaveAs(physicalPath); newProject.ProjectFiles.Add(photo); } _unitOfWork.ProjectRepositry.Add(newProject); _unitOfWork.Complete(); return(RedirectToAction("Index")); } catch (Exception ex) { return(Content(ex.Message)); } }