public JsonResult deleteProject(int pid)
        {
            DatabaseEntities db = new DatabaseEntities();
            ProjectsTable    pt = db.ProjectsTables.Where(r => r.project_id == pid).FirstOrDefault();

            if (pt != null)
            {
                try
                {
                    List <projectData> lt = db.projectDatas.Where(r => r.projectID == pid).ToList();
                    foreach (var v in lt)
                    {
                        db.projectDatas.Remove(v);
                    }
                    List <teamMembersTable> ct = db.teamMembersTables.Where(r => r.project_id == pid).ToList();
                    foreach (var v in ct)
                    {
                        db.teamMembersTables.Remove(v);
                    }
                    List <GroupPost> gp = db.GroupPosts.Where(r => r.projectID == pid).ToList();
                    foreach (var v in gp)
                    {
                        db.GroupPosts.Remove(v);
                    }
                    db.ProjectsTables.Remove(db.ProjectsTables.Find(pid));
                    db.SaveChanges();
                    var json1 = new
                    {
                        success = "ok"
                    };
                    return(Json(json1));
                }
                catch (Exception e)
                {
                    var json2 = new
                    {
                        success = e
                    };
                    return(Json(json2));
                }
            }
            else
            {
                var json = new
                {
                    success = "not"
                };
                return(Json(json));
            }
        }
        public string startProject(string list)
        {
            string data = list.Substring(1, list.Length - 2);

            string[]         data1 = data.Split(',');
            DatabaseEntities db    = new DatabaseEntities();


            int teamLead_id = (int)Session["UserID"];
            int post_id     = (int)Session["SelectedPostId"];

            ProjectsTable pt = db.ProjectsTables.Where(r => r.teamLead_id == teamLead_id && r.post_id == post_id).FirstOrDefault();

            if (pt != null)
            {
                Session["projectID"] = pt.project_id;
                return("!! project is already started by you .....");
            }
            else
            {
                ProjectsTable obj = new ProjectsTable();
                obj.teamLead_id = teamLead_id;
                obj.post_id     = post_id;
                obj.startDate   = System.DateTime.Today;
                obj.endDate     = System.DateTime.Today;
                ProjectsTable obj2 = db.ProjectsTables.Add(obj);
                db.SaveChanges();
                int projectId = obj.project_id;

                for (int i = 0; i < data1.Length; i++)
                {
                    DatabaseEntities db2      = new DatabaseEntities();
                    teamMembersTable teamData = new teamMembersTable();
                    teamData.project_id = projectId;
                    teamData.user_id    = int.Parse(data1[i]);
                    db2.teamMembersTables.Add(teamData);
                    db2.SaveChanges();
                }
                Session["projectID"] = projectId;
                return("Successfully you project is initializad");
            }
        }
Beispiel #3
0
        public async Task <ProjectsTable> GetAllProjects(ProjectSearchForTable projectparams)
        {
            int  pageSize = 6;
            User user     = await _usermanager.FindByNameAsync(projectparams.UserName);

            ProjectsTable projectsinfo = new ProjectsTable();

            if (user != null)
            {
                IEnumerable <ProjectModelToTable> projects = await _dbcontext.Set <Project>()
                                                             .Include(p => p.User).Include(p => p.Issues)
                                                             .Join((await _dbcontext.Set <Team>().ToListAsync()), p => p.Id, t => t.ProjectId, (p, t) => new ProjectModelToTable()
                {
                    ProjectId     = p.Id,
                    Name          = p.Name,
                    Owner         = p.User.Email,
                    Issues        = p.Issues.Where(i => i.UserId == t.UserId).Count(),
                    DoneIssues    = p.Issues.Where(i => i.Status == Status.Done && i.UserId == t.UserId).Count(),
                    UserIdWhoView = t.UserId
                })
                                                             .Where(p => p.UserIdWhoView == user.Id)
                                                             .ToListAsync();

                if (!String.IsNullOrEmpty(projectparams.Name))
                {
                    projects = projects.Where(p => p.Name.ToLower().Contains(projectparams.Name.ToLower()));
                }

                int projectsCount = projects.Count();
                if (projectparams.Page > (int)Math.Ceiling((decimal)projectsCount / pageSize) || projectparams.Page < 1)
                {
                    projectparams.Page = 1;
                }


                switch (projectparams.OrderBy)
                {
                case "NameUp":
                {
                    projects = projects.OrderBy(e => e.Name).ToList();
                    break;
                }

                case "NameDown":
                {
                    projects = projects.OrderByDescending(e => e.Name).ToList();
                    break;
                }

                case "None":
                {
                    projects = (projects).ToList().OrderBy(p => p.Percentage);
                    break;
                }

                default:
                {
                    projects = (projects).ToList().OrderBy(p => p.Percentage);
                    break;
                }
                }


                projectsinfo.projects = projects.Skip((projectparams.Page - 1) * pageSize).Take(pageSize).ToList();;
                projectsinfo.PageInfo = new PageInfo {
                    PageNumber = projectparams.Page, PageSize = pageSize, TotalItems = projectsCount
                };
                return(projectsinfo);
            }
            else
            {
                throw new Exception("User not found");
            }
        }