private string LoadAdminOpenProjects()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<thead>");
            sb.Append("<th><strong>Name</strong></th>");
            sb.Append("<th><strong>Created</strong></th>");
            sb.Append("<th class='text-center'><strong>Total Tickets</strong></th>");
            sb.Append("<th class='text-center'><strong>Open Tickets</strong></th>");
            sb.Append("<th class='text-center'><strong>Managers</strong></th>");
            sb.Append("<th class='text-center'><strong>Devs</strong></th>");
            sb.Append("<th class='text-center'><strong>Users</strong></th>");
            sb.Append("</thead>");

            sb.Append("<tbody>");

            foreach (projects_tickets_detail project in ProjectsDB.GetActiveProjectsDetails())
            {
                sb.Append("<tr>");
                sb.AppendFormat("<td><a href='/pages_dynamic/projects/projects_edit.aspx?id={1}'>{0}</a></td>", project.name, project.project_id);
                sb.AppendFormat("<td>{0:dd/MM/yyyy}</td>", project.created_date);
                sb.AppendFormat("<td class='text-center'>{0}</td>", project.Total_Tickets);
                sb.AppendFormat("<td class='text-center'>{0}</td>", project.Open_Tickets);
                sb.AppendFormat("<td class='text-center'>{0}</td>", project.Managers);
                sb.AppendFormat("<td class='text-center'>{0}</td>", project.Devs);
                sb.AppendFormat("<td class='text-center'>{0}</td>", project.Users);
                sb.Append("</tr>");
            }

            sb.Append("</tbody>");


            return(sb.ToString());
        }
예제 #2
0
 public void DeleteProject(int ProjectId)
 {
     try
     {
         using (ProjectsDB db = new ProjectsDB())
         {
             var project = db.ProjectInfo.Where(p => p.ProjectId == ProjectId).FirstOrDefault();
             if (project != null)
             {
                 db.Entry(project).State = EntityState.Deleted;
                 // Removing dependencies
                 foreach (var pe in db.ProjectExecutors.ToList())
                 {
                     if (pe.ProjectId == ProjectId)
                     {
                         db.ProjectExecutors.Remove(pe);
                     }
                 }
                 db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         throw new DBException("DeleteProject(): ", ex.ToString());
     }
 }
예제 #3
0
        private void LoadDevs()
        {
            //get total amount of developers assigned to project
            List <MembershipUser> devs = ProjectsDB.GetProjectDevs(this_project);

            ltlDevCount.Text = devs.Count.ToString();

            StringBuilder sb = new StringBuilder();

            sb.Append("<table id='tblDevelopers' class='display project-users'>");

            sb.Append("<thead>");
            sb.Append("<th><strong>Name</strong></th>");
            sb.Append("<th class='text-center'><strong>Total Tickets</strong></th>");
            sb.Append("<th><strong>Remove</strong></th>");
            sb.Append("</thead>");

            sb.Append("<tbody>");

            foreach (MembershipUser dev in devs)
            {
                sb.Append("<tr>");

                sb.AppendFormat("<td>{0}</td>", dev.UserName);
                sb.AppendFormat("<td>{0}</td>", TicketsDB.GetDevProjectTicketCount(this_project, dev));
                sb.AppendFormat("<td><input type='button' value='X' data-user='******' class='RemoveUserFromProject' onclick='RemoveUserFromProject(this);'/>", dev.ProviderUserKey);

                sb.Append("</tr>");
            }

            sb.Append("</tbody>");
            sb.Append("</table>");

            ltlDevs.Text = sb.ToString();
        }
예제 #4
0
 public void DeleteEmployee(int PersonId)
 {
     try
     {
         using (ProjectsDB db = new ProjectsDB())
         {
             var employee = db.Staff.Where(s => s.PersonId == PersonId).FirstOrDefault();
             if (employee != null)
             {
                 db.Entry(employee).State = EntityState.Deleted;
                 // Removing all dependencies
                 foreach (var pe in db.ProjectExecutors.ToList())
                 {
                     if (pe.ProjectExecutorId == PersonId)
                     {
                         db.ProjectExecutors.Remove(pe);
                     }
                 }
                 foreach (var pi in db.ProjectInfo.ToList())
                 {
                     if (pi.ProjectManagerId == PersonId)
                     {
                         db.ProjectInfo.Remove(pi);
                     }
                 }
                 db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         throw new DBException("DeleteEmployee(): ", ex.ToString());
     }
 }
예제 #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            login_type = Convert.ToInt16(Session["login_type"]);

            if (login_type == 0)
            {
                Response.Redirect("/index");
            }

            if (String.IsNullOrEmpty(Request.QueryString["id"]))
            {
                Response.Redirect("/index");
            }
            else
            {
                this_project = ProjectsDB.GetProject(Convert.ToInt32(Request.QueryString["id"]));

                if (this_project.id == 0)
                {
                    Response.Redirect("/index");
                }

                project_id = this_project.id;
                strTitle   = this_project.name;
                LoadProjectDetails();
            }
        }
예제 #6
0
        public static object[] LoadProjectUsers()
        {
            StringBuilder sb       = new StringBuilder();
            Int16         devCount = 0;
            //get total amount of developers assigned to project
            List <MembershipUser> users     = ProjectsDB.GetProjectUsers(ProjectsDB.GetProject(project_id));
            List <ProjectUser>    all_users = new List <ProjectUser>();

            try
            {
                project this_project = ProjectsDB.GetProject(project_id);
                devCount = (Int16)users.Count;

                foreach (MembershipUser user in users)
                {
                    ProjectUser new_user = new ProjectUser()
                    {
                        Username      = user.UserName,
                        User_id       = user.ProviderUserKey.ToString(),
                        Ticket_count  = TicketsDB.GetUserProjectTicketCount(this_project, user),
                        Remove_button = String.Format("<input type='button' value='X' data-user='******' class='RemoveUserFromProject' onclick='RemoveUserFromProject(this);'/>", user.ProviderUserKey)
                    };

                    all_users.Add(new_user);
                }
            }
            catch (Exception ex)
            {
                LogsDB.AddLog("Error building project developers table", LogsDB.GetLogType("error").id, project_id, ex);
            }

            return(new object[] { all_users, devCount });
        }
예제 #7
0
        protected void btnCreateProject_Click(object sender, EventArgs e)
        {
            string  project_name = txtProjectName.Text;
            project new_project  = ProjectsDB.GetProject(project_name);

            if (new_project != null)
            {
                ltlMessage.Text = String.Format("<span class='error-message'>A project with name {0} already exists</span>", project_name);
            }
            else
            {
                new_project             = new project();
                new_project.name        = project_name;
                new_project.description = txtProjectDescription.Text;

                new_project = ProjectsDB.AddEditProject(new_project);

                if (new_project != null)
                {
                    ltlMessage.Text            = "<span class='success-message'>New Project Created</span>";
                    txtProjectName.Text        = string.Empty;
                    txtProjectDescription.Text = string.Empty;

                    txtProjectName.Focus();
                }
            }
        }
예제 #8
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            string aStorage     = "";                  // name of Storage
            string aProjectPath = "";
            string aPlaceName   = comboPlaces.Text;    // name of selected Place
            string aPlacePath   = "";
            string aProjectName = txtProjectName.Text; // project to which we have to save the map

            using (ProjectsDB _db = new ProjectsDB())
            {
                DataTable _dt = _db.ExecuteQuery("select * from PROJECTS where PROJECTNAME='" + aProjectName + "' and PLACENAME='" + aPlaceName + "'");
                if (_dt.Rows.Count > 0) // project with this name already exists
                {
                    lblProjectNameError.Text = MMUtils.GetString("createprojectdlg.projectexists.text");
                    return;
                }
            }

            // project name not entered
            if (aProjectName == "")
            {
                lblProjectNameError.Text = MMUtils.GetString("createprojectdlg.projectnameempty.text");
                return;
            }

            using (PlacesDB _db = new PlacesDB())
            {
                DataTable _dt = _db.ExecuteQuery("select * from PLACES where PLACENAME='" + aPlaceName + "'");
                aStorage   = _dt.Rows[0]["STORAGE"].ToString();
                aPlacePath = _dt.Rows[0]["PLACEPATH"].ToString();
            }

            aProjectPath = aPlacePath + "$$" + aProjectName;
            string _localPath = MMUtils.m_SynergyLocalPath + aPlaceName + "\\" + aProjectName;

            try
            {
                System.IO.Directory.CreateDirectory(_localPath);
                System.IO.Directory.CreateDirectory(aProjectPath); // in the Place
            }
            catch (Exception _e)                                   // TODO cause!!! read-only, etc...
            {
                MessageBox.Show(this, "Error " + _e.Message, "title", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.DialogResult = DialogResult.Cancel; // TODO
            }

            ProjectsDB.AddProjectToDB(aStorage, aPlaceName, aProjectName, aProjectPath, _localPath);

            this.DialogResult = DialogResult.OK;
        }
예제 #9
0
 public bool ValidateProjectExecutor(int ProjectId, int PersonId)
 {
     try
     {
         using (ProjectsDB db = new ProjectsDB())
         {
             return(db.ProjectExecutors.Where(x => x.ProjectExecutorId == PersonId && x.ProjectId == ProjectId).Select(x => x.Id).FirstOrDefault() == 0);
         }
     }
     catch (Exception ex)
     {
         throw new DBException("ValidateProjectExecutor(): ", ex.ToString());
     }
 }
예제 #10
0
        public void Init()
        {
            login_timer          = new Timer();
            login_timer.Interval = 50;
            login_timer.Tick    += new EventHandler(Login_timer_Tick);

            // Init databases
            MapsDB     _dbMaps       = new MapsDB(); _dbMaps.Dispose();
            UsersDB    _dbUsers      = new UsersDB(); _dbUsers.Dispose();
            StoragesDB _dbStorages   = new StoragesDB(); _dbStorages.Dispose();
            PlacesDB   _dbMyPlaces   = new PlacesDB(); _dbMyPlaces.Dispose();
            ProjectsDB _dbMyProjects = new ProjectsDB(); _dbMyProjects.Dispose();

            CreateLogin();
        }
예제 #11
0
 public EmployeeModel GetEmployeeById(int PersonId)
 {
     try
     {
         List <Staff> employees = new List <Staff>();
         using (ProjectsDB db = new ProjectsDB())
         {
             employees = db.Staff.ToList();
         }
         return(GetEmployeeById(employees, PersonId));
     }
     catch (Exception ex)
     {
         throw new DBException("GetEmployeeById(): ", ex.ToString());
     }
 }
예제 #12
0
        private void LoadProjects()
        {
            List <project> projects = ProjectsDB.GetAllProjects();
            ListItem       item;

            foreach (project project in projects)
            {
                item = new ListItem()
                {
                    Text  = project.name,
                    Value = project.id.ToString()
                };

                ddlProjects.Items.Add(item);
            }
        }
예제 #13
0
 public List <EmployeeModel> GetEmployeesList()
 {
     try
     {
         List <Staff> employees = new List <Staff>();
         using (ProjectsDB db = new ProjectsDB())
         {
             employees = db.Staff.ToList();
         }
         return(GetEmployeesList(employees));
     }
     catch (Exception ex)
     {
         throw new DBException("GetEmployeesList(): ", ex.ToString());
     }
 }
예제 #14
0
 public ProjectModel GetProjectById(int ProjectId)
 {
     try
     {
         List <ProjectInfo> projects = new List <ProjectInfo>();
         using (ProjectsDB db = new ProjectsDB())
         {
             projects = db.ProjectInfo.ToList();
         }
         return(GetProjectById(projects, ProjectId));
     }
     catch (Exception ex)
     {
         throw new DBException("GetProjectById(): ", ex.ToString());
     }
 }
예제 #15
0
        public static bool AddUserToProject(string user_id)
        {
            bool added = false;

            try
            {
                ProjectsDB.AddUserToProject(project_id, user_id);
                added = true;
            }
            catch (Exception ex)
            {
                LogsDB.AddLog(String.Format("Project - Add User. Error adding user {0} to project id {1}", user_id, project_id), LogsDB.GetLogType("error").id, project_id, ex);
            }

            return(added);
        }
예제 #16
0
        public static bool RemoveUserFromProject(string user_id)
        {
            bool removed = false;

            try
            {
                ProjectsDB.RemoveUserFromProject(project_id, user_id);
                removed = true;
            }
            catch (Exception ex)
            {
                LogsDB.AddLog(String.Format("Project - Remove user. Error removing user {0} from project {1}", user_id, project_id), LogsDB.GetLogType("error").id, project_id, ex);
            }

            return(removed);
        }
예제 #17
0
        public bool InsertIntoTableProjects(ProjectsDB projectsDB)
        {
            try
            {
                using (var connection = new SQLiteConnection(System.IO.Path.Combine(folderPath, "ProjectsDB.db")))
                {
                    connection.Insert(projectsDB);
                    return(true);
                }
            }

            catch (SQLiteException ex)
            {
                Log.Info("SQLiteEx", ex.Message);
                return(false);
            }
        }
예제 #18
0
 public void AddProjectExecutor(int ProjectId, int PersonId)
 {
     try
     {
         ProjectExecutors executor = new ProjectExecutors {
             ProjectId = ProjectId, ProjectExecutorId = PersonId
         };
         using (ProjectsDB db = new ProjectsDB())
         {
             db.ProjectExecutors.Add(executor);
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw new DBException("AddProjectExecutor(): ", ex.ToString());
     }
 }
예제 #19
0
 public List <EmployeeModel> GetProjectExecutorsList(int ProjectId)
 {
     try
     {
         List <Staff>            staff     = new List <Staff>();
         List <ProjectExecutors> executors = new List <ProjectExecutors>();
         using (ProjectsDB db = new ProjectsDB())
         {
             staff     = db.Staff.ToList();
             executors = db.ProjectExecutors.ToList();
         }
         return(GetProjectExecutorsList(staff, executors, ProjectId));
     }
     catch (Exception ex)
     {
         throw new DBException("GetProjectExecutorsList(): ", ex.ToString());
     }
 }
예제 #20
0
 public int CreateEmployee(EmployeeModel model)
 {
     try
     {
         var Mapper   = MapperHelper.CreateMap <EmployeeModel, Staff>();
         var employee = Mapper.Map <Staff>(model);
         using (ProjectsDB db = new ProjectsDB())
         {
             db.Staff.Add(employee);
             db.SaveChanges();
             return(db.Staff.Where(s => s.Email == model.Email).Select(s => s.PersonId).FirstOrDefault());
         }
     }
     catch (Exception ex)
     {
         throw new DBException("CreateEmployee(): ", ex.ToString());
     }
 }
예제 #21
0
        public bool UpdateTableProjects(ProjectsDB projectsDB)
        {
            try
            {
                using (var connection = new SQLiteConnection(System.IO.Path.Combine(folderPath, "ProjectsDB.db")))
                {
                    connection.Query <ProjectsDB>("UPDATE ProjectsDB set ProjectName=?, progressStatus=?, " +
                                                  "isComplete=? Where Id=?", projectsDB.ProjectName, projectsDB.progressStatus, projectsDB.isComplete);
                    return(true);
                }
            }

            catch (SQLiteException ex)
            {
                Log.Info("SQLiteEx", ex.Message);
                return(false);
            }
        }
예제 #22
0
 public void DeleteProjectExecutor(int ProjectId, int PersonId)
 {
     try
     {
         using (ProjectsDB db = new ProjectsDB())
         {
             var executor = db.ProjectExecutors.Where(x => x.ProjectId == ProjectId && x.ProjectExecutorId == PersonId).FirstOrDefault();
             if (executor != null)
             {
                 db.Entry(executor).State = EntityState.Deleted;
             }
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw new DBException("DeleteProjectExecutor(): ", ex.ToString());
     }
 }
예제 #23
0
        private void LoadTickets()
        {
            List <project_detail> tickets = ProjectsDB.GetProjectTickets(this_project);

            ltlTicketCount.Text = tickets.Count().ToString();

            StringBuilder sb = new StringBuilder();

            sb.Append("<table id='tblTickets' class='display'>");

            sb.Append("<thead>");
            sb.Append("<th><strong>ID</strong></th>");
            sb.Append("<th><strong>Title</strong></th>");
            sb.Append("<th class='text-center'><strong>Created By</strong></th>");
            sb.Append("<th class='text-center'><strong>Created Date</strong></th>");
            sb.Append("<th><strong>Status</strong></th>");
            sb.Append("<th><strong>Priority</strong></th>");
            sb.Append("<th><strong>Assigned To</strong></th>");
            sb.Append("</thead>");

            sb.Append("<tbody>");

            foreach (project_detail ticket in tickets)
            {
                sb.Append("<tr>");

                sb.AppendFormat("<td>{0}</td>", TicketsDB.GenerateTicketNumber(TicketsDB.GetTicketHeader(ticket.ticket_id)));
                sb.AppendFormat("<td>{0}</td>", ticket.title);
                sb.AppendFormat("<td>{0}</td>", ticket.created_by);
                sb.AppendFormat("<td>{0: dd/MM/yyyy}</td>", ticket.created_date);
                sb.AppendFormat("<td>{0}</td>", ticket.status);
                sb.AppendFormat("<td>{0}</td>", ticket.priority);
                sb.AppendFormat("<td>{0}</td>", ticket.dev);

                sb.Append("</tr>");
            }

            sb.Append("</tbody>");
            sb.Append("</table>");

            ltlTicketsOpen.Text = sb.ToString();
        }
예제 #24
0
 public List <ProjectModel> GetProjectsList()
 {
     try
     {
         List <ProjectInfo>      projects  = new List <ProjectInfo>();
         List <Staff>            staff     = new List <Staff>();
         List <ProjectExecutors> executors = new List <ProjectExecutors>();
         using (ProjectsDB db = new ProjectsDB())
         {
             projects  = db.ProjectInfo.ToList();
             staff     = db.Staff.ToList();
             executors = db.ProjectExecutors.ToList();
         }
         return(GetProjectsList(projects, staff, executors));
     }
     catch (Exception ex)
     {
         throw new DBException("GetProjectsList(): ", ex.ToString());
     }
 }
예제 #25
0
 public int CreateProject(ProjectModel model)
 {
     try
     {
         var Mapper  = MapperHelper.CreateMap <ProjectModel, ProjectInfo>();
         var project = Mapper.Map <ProjectInfo>(model);
         using (ProjectsDB db = new ProjectsDB())
         {
             db.ProjectInfo.Add(project);
             db.SaveChanges();
             int Id = db.ProjectInfo.Where(p => p.ClientCompanyName == model.ClientCompanyName && p.StartDate == model.StartDate).Select(s => s.ProjectId).FirstOrDefault();
             AddProjectExecutor(Id, model.ProjectManagerId);
             return(Id);
         }
     }
     catch (Exception ex)
     {
         throw new DBException("CreateProject(): ", ex.ToString());
     }
 }
예제 #26
0
 public void UpdateEmployee(EmployeeModel model)
 {
     try
     {
         using (ProjectsDB db = new ProjectsDB())
         {
             var employee = db.Staff.Where(s => s.PersonId == model.PersonId).FirstOrDefault();
             employee.FirstName       = model.FirstName;
             employee.Patronymic      = model.Patronymic;
             employee.LastName        = model.LastName;
             employee.Email           = model.Email;
             db.Entry(employee).State = EntityState.Modified;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw new DBException("UpdateEmployee(): ", ex.ToString());
     }
 }
예제 #27
0
        /// <summary>
        /// Inserting the typed edittext value inside the Database.
        /// </summary>
        private void FloatingActionButton_Click(object sender, EventArgs e)
        {
            ProjectsDB projectsDB = new ProjectsDB()
            {
                ProjectName = futureEditText.Text,
            };

            pdb.createDataBase();
            bool error = pdb.InsertIntoTableProjects(projectsDB);

            var posts = pdb.stringListViewProjects();

            if (error)
            {
                Toast.MakeText(this, "Data Inserted.", ToastLength.Long).Show();
            }
            else
            {
                Toast.MakeText(this, "Data Not Inserted.", ToastLength.Long).Show();
            }
        }
예제 #28
0
        void GetProjects()
        {
            using (ProjectsDB _db = new ProjectsDB())
            {
                DataTable _dt = _db.ExecuteQuery("select * from PROJECTS where PLACENAME=`" + comboMyPlaces.Text + "` order by PROJECTNAME");
                if (_dt.Rows.Count != 0)
                {
                    foreach (DataRow _row in _dt.Rows)
                    {
                        comboMyProjects.Items.Add(_row["PROJECTNAME"]);
                    }

                    comboMyProjects.Enabled = true;
                    chBoxSingleMap.Checked  = false;
                }
                else
                {
                    comboMyProjects.Enabled = false;
                    chBoxSingleMap.Checked  = true;
                }
            }
        }
예제 #29
0
 public void UpdateProject(ProjectModel model)
 {
     try
     {
         using (ProjectsDB db = new ProjectsDB())
         {
             var project = db.ProjectInfo.Where(p => p.ProjectId == model.ProjectId).FirstOrDefault();
             project.ClientCompanyName    = model.ClientCompanyName;
             project.ExecutiveCompanyName = model.ExecutiveCompanyName;
             project.Priority             = model.Priority;
             project.StartDate            = model.StartDate;
             project.EndDate          = model.EndDate;
             project.Comment          = model.Comment;
             project.ProjectManagerId = model.ProjectManagerId;
             db.Entry(project).State  = EntityState.Modified;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw new DBException("UpdateProject(): ", ex.ToString());
     }
 }
예제 #30
0
        public static bool SaveProjectDescr(string project_descr)
        {
            bool   updated = false;
            object obj     = HttpContext.Current.Request.QueryString["id"];

            try
            {
                project this_project = ProjectsDB.GetProject(project_id);
                this_project.description = project_descr;

                this_project = ProjectsDB.AddEditProject(this_project);

                if (this_project != null)
                {
                    updated = true;
                }
            }
            catch (Exception ex)
            {
                LogsDB.AddLog("Error updating project description", LogsDB.GetLogType("error").id, project_id, ex);
            }

            return(updated);
        }