Ejemplo n.º 1
0
        // 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));
            }
        }
Ejemplo n.º 2
0
        // 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));
        }
Ejemplo n.º 3
0
        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));
            }
        }