public ActionResult DeleteConfirmed(int id)
        {
            TaskOfProject taskOfProject = db.TasksOfProject.Find(id);

            db.TasksOfProject.Remove(taskOfProject);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Overview(int id)
        {
            TaskOfProject task = db.TasksOfProject.Find(id);

            if (task == null)
            {
                return(HttpNotFound());
            }
            return(PartialView(task));
        }
        // GET: TaskOfProjects/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TaskOfProject taskOfProject = db.TasksOfProject.Find(id);

            if (taskOfProject == null)
            {
                return(HttpNotFound());
            }
            return(View(taskOfProject));
        }
 public void SaveFiles(IEnumerable <HttpPostedFileBase> files, TaskOfProject task)
 {
     foreach (HttpPostedFileBase item in files)
     {
         if (item != null)
         {
             string   prefix = Guid.NewGuid().ToString() + item.FileName;
             FilesCRM file   = new FilesCRM()
             {
                 Name = prefix, FileName = item.FileName
             };
             task.FilesCRMs.Add(file);
             item.SaveAs(Server.MapPath("~/Files/" + prefix));
         }
     }
 }
 public void SaveFiles(HttpFileCollectionBase files, TaskOfProject task)
 {
     foreach (string file in files)
     {
         HttpPostedFileBase item = Request.Files[file];
         if (item != null && item.ContentLength > 0)
         {
             string   prefix   = Guid.NewGuid().ToString() + item.FileName;
             FilesCRM fileSave = new FilesCRM()
             {
                 Name = prefix, FileName = item.FileName
             };
             task.FilesCRMs.Add(fileSave);
             item.SaveAs(Server.MapPath("~/Files/" + prefix));
         }
     }
 }
        public ActionResult Index(int id)
        {
            TaskOfProject task = db.TasksOfProject.Find(id);

            if (task == null)
            {
                return(HttpNotFound());
            }
            var user = db.Users.Find(User.Identity.GetUserId());

            ViewBag.Admin = false;
            if (UserManager.IsInRole(user.Id, "Admin") || task.ForWhom.UserName.Equals(user.UserName) || task.FromWhom.UserName.Equals(user.UserName))
            {
                ViewBag.Admin = true;
            }

            return(View(task));
        }
        public JsonResult Create([Bind(Include = "FromWhomId,ForWhomId,Name,Description,DateStart,DataFinal,Priority,ProjectId,TaskStatus")] TaskOfProject taskOfProject, List <string> users)
        {
            if (ModelState.IsValid)
            {
                List <ApplicationUser> watchers = db.Users.Where(u => users.Contains(u.Id)).ToList();
                taskOfProject.Watchers.AddRange(watchers);
                taskOfProject.FromWhomId = User.Identity.GetUserId();
                db.TasksOfProject.Add(taskOfProject);
                if (Request.Files != null)
                {
                    SaveFiles(Request.Files, taskOfProject);
                }

                db.SaveChanges();
                return(Json(new { message = "Задача добавлена" }, JsonRequestBehavior.DenyGet));
            }
            return(Json(new { message = "Ошибка, задача не создана" }, JsonRequestBehavior.DenyGet));
        }
        // GET: TaskOfProjects/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TaskOfProject taskOfProject = db.TasksOfProject.Find(id);

            if (taskOfProject == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdProject = taskOfProject.ProjectId;
            ViewBag.ForWhomId = new SelectList(db.Users.OrderBy(s => s.SecondName), "Id", "SecondName");
            List <ApplicationUser> users = taskOfProject.Project.Groups.SelectMany(t => t.ApplicationUsers).ToList();

            ViewBag.Watchers = users.GroupBy(x => x.Id).Select(g => g.First()).ToList();
            return(PartialView(taskOfProject));
        }
 public ActionResult Edit([Bind(Include = "Id,ForWhomId,Name,Description,DateStart,DataFinal,Priority,TaskStatus")] TaskOfProject taskOfProject, List <string> users)
 {
     if (ModelState.IsValid)
     {
         TaskOfProject task = db.TasksOfProject.Find(taskOfProject.Id);
         task.Name        = taskOfProject.Name;
         task.Description = taskOfProject.Description;
         task.ForWhomId   = taskOfProject.ForWhomId;
         task.TaskStatus  = taskOfProject.TaskStatus;
         task.Priority    = taskOfProject.Priority;
         task.DateStart   = taskOfProject.DateStart;
         task.DataFinal   = taskOfProject.DataFinal;
         task.Watchers.Clear();
         task.Watchers.AddRange(db.Users.Where(u => users.Contains(u.Id)));
         if (Request.Files != null)
         {
             SaveFiles(Request.Files, task);
         }
         db.Entry(task).State = EntityState.Modified;
         db.SaveChanges();
         return(Json(new { message = "Задача изменена" }, JsonRequestBehavior.DenyGet));
     }
     return(Json(new { message = "Ошибка, попробуйте снова" }, JsonRequestBehavior.DenyGet));
 }