示例#1
0
        /// <summary>
        /// GetProject
        /// </summary>
        /// <param name="projectID">int</param>
        /// <returns>Project</returns>
        public static Project GetProject(int projectID)
        {
            try
            {   // get the project info from database.
                using (var db = new ProjectManagerEntities())
                {
                    var query = (from p in db.ProjectDALs
                                 where p.ProjectID == projectID
                                select p).FirstOrDefault();

                    if (query != null)
                    {
                        var proj = new Project
                                 (
                                      query.ProjectID,
                                      query.Name,
                                      DateTime.Parse(query.StartDate.ToString()),
                                      DateTime.Parse(query.EndDate.ToString()),
                                      query.Status,
                                      query.Description,
                                      query.ProjectCategoryID.ToString(),
                                      DateTime.Parse(query.DueDate.ToString())
                                 );

                        return proj;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return null;
        }
示例#2
0
        /// <summary>
        /// GetUserListForView
        /// </summary>
        /// <returns>List of User ID and Name KeyValuePair values</returns>
        public static List<KeyValuePair<string, int>> GetUserListForView()
        {
            try
            {
                // key value pair list.
                var userList = new List<KeyValuePair<string, int>>();

                using (var db = new ProjectManagerEntities())
                {
                    var query = from u in db.UserDALs
                                select u;

                    if (query != null)
                    {
                        foreach (var q in query)
                        {
                            // add user full name and id to the list.
                            userList.Add(new KeyValuePair<string, int>(q.FirstName + " " + q.LastName, q.UserID));
                        }
                    }

                    return userList;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#3
0
        /// <summary>
        /// AddIssue - Add New Issue
        /// </summary>
        /// <param name="issue">Issue</param>
        /// <returns>bool</returns>
        public static bool AddIssue(Issue issue)
        {
            try
            {
                var returnValue = false;
                var id = 0;

                // wrap in a TransactionScope since we are updating two tables - Issues and IssueAssignments
                using (TransactionScope transaction = new TransactionScope())
                {

                    using (var db = new ProjectManagerEntities())
                    {

                            db.Connection.Open();
                            var i = new IssueDAL();
                            //i.IssueID = -1;
                            i.Subject = issue.Subject;
                            i.ProjectID = issue.ProjectID;
                            i.Priority = issue.CurrentPriority.ToString();
                            i.Status = issue.CurrentStatus.ToString();
                            i.Description = issue.Description;
                            i.IssueCategoryName = issue.IssueCategoryName;
                            i.EntryDate = issue.EntryDate;

                            // save issue.
                            db.IssueDALs.AddObject(i);
                            db.SaveChanges();

                            // get the newly inserted issueid.
                            id = i.IssueID;

                            // save issue assignment.
                            var issueAssignment = new IssueAssignmentDAL();
                            issueAssignment.IssueID = id;
                            issueAssignment.UserID = issue.Assignee.UserId;
                            db.IssueAssignmentDALs.AddObject(issueAssignment);
                            db.SaveChanges();

                        }

                        transaction.Complete();

                        // successfully inserted.
                        returnValue = true;
                }

                return returnValue;

            }
            catch (TransactionAbortedException)
            {
                throw;
            }
            catch (Exception)
            {

                throw;
            }
        }
示例#4
0
        /// <summary>
        /// GetUserGivenLogonName
        /// </summary>
        /// <param name="logonName"></param>
        /// <returns></returns>
        public static User GetUserGivenLogonName(string logonName)
        {
            var user = new User();

            try
            {

                using (var db = new ProjectManagerEntities())
                {
                    var query = (from u in db.UserDALs
                                where u.UserName == logonName
                                select u).First();

                    if (query != null)
                    {
                        user.UserId = query.UserID;
                        user.UserName = query.UserName;
                        user.Password = query.Password;
                        user.UserRole = query.UserRole;
                        user.FirstName = query.FirstName;
                        user.LastName = query.LastName;
                        user.Email = query.Email;
                        user.PhoneNumber = query.PhoneNumber;
                        user.Position = query.Position;
                        user.TeamName = query.Position;
                    }

                }
            }
            catch (Exception)
            {
                throw;
            }
            return user;
        }
示例#5
0
        /// <summary>
        /// GetProjectList
        /// </summary>
        /// <returns>List<IssueModel></returns>
        public static List<Project> GetProjectList()
        {
            List<Project> projects = new List<Project>();

            try
            {
                using (var db = new ProjectManagerEntities())
                {
                    var query = from p in db.ProjectDALs
                                select p;

                    // get the list of projects.
                    foreach (var q in query)
                    {
                        var proj = new Project
                                 (
                                      q.ProjectID,
                                      q.Name,
                                      DateTime.Parse(q.StartDate.ToString()),
                                      DateTime.Parse(q.EndDate.ToString()),
                                      q.Status,
                                      q.Description,
                                      q.ProjectCategoryID.ToString(),
                                      DateTime.Parse(q.DueDate.ToString())
                                 );
                        var issueDals = new IssueDAL();
                        // get the list of issues for the specific projectID.
                        proj.Issues = issueDals.GetIssueList(proj.ProjectID);
                        // add to the project list
                        projects.Add(proj);

                    }

                }

            }
            catch (Exception)
            {
                throw;
            }
            return projects;
        }
示例#6
0
        /// <summary>
        /// GetProjectListForView
        /// </summary>
        /// <returns>List of Project ID and Name KeyValuePair values</returns>
        public static List<KeyValuePair<string, int>> GetProjectListForView()
        {
            try
            {
                // key value pair list.
                var projectsList = new List<KeyValuePair<string, int>>();

                using (var db = new ProjectManagerEntities())
                {
                    var query = from p in db.ProjectDALs
                                select p;

                    if (query != null)
                    {
                        foreach (var q in query)
                        {
                            // add project id and name to the list.
                            projectsList.Add(new KeyValuePair<string, int>(q.Name, q.ProjectID));
                        }
                    }

                    return projectsList;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#7
0
        /// <summary>
        /// AddIssueAttachment
        /// </summary>
        /// <param name="issueAttachment">IssueAttachment</param>
        /// <returns>bool</returns>
        public static bool AddIssueAttachment(IssueAttachment issueAttachment)
        {
            var returnValue = false;

            try
            {
                using (var db = new ProjectManagerEntities())
                {
                    db.Connection.Open();
                    var ia = new IssueAttachmentDAL();
                    ia.Filename = issueAttachment.FileName;
                    ia.EntryDate = issueAttachment.EntryDate;
                    ia.Description = issueAttachment.Description;
                    ia.IssueID = issueAttachment.IssueID;
                    ia.UserID = issueAttachment.UserID;
                    ia.MimeType = issueAttachment.MimeType;
                    ia.FileData = issueAttachment.FileData;

                    // save issue Attachment.
                    db.IssueAttachmentDALs.AddObject(ia);
                    db.SaveChanges();

                }

                returnValue = true;

            }
            catch (Exception)
            {

                throw;
            }

            return returnValue;
        }
示例#8
0
        /// <summary>
        /// GetIssueList
        /// </summary>
        /// <returns></returns>
        public List<Issue> GetIssueList(int projectID)
        {
            List<Issue> issues = new List<Issue>();

            try
            {
                using (var db = new ProjectManagerEntities())
                {
                    // get the list of issues for a specific ProjectID.
                    var query = (from i in db.IssueDALs
                                 join ia in db.IssueAssignmentDALs on i.IssueID equals ia.IssueID into IandIA
                                 from iaJoin in IandIA.DefaultIfEmpty()
                                 join u in db.UserDALs on iaJoin.UserID equals u.UserID into IAandU
                                 from uJoin in IAandU.DefaultIfEmpty()
                                 where i.ProjectID == projectID
                                 select new
                                 {
                                     IssueID = iaJoin.IssueID,
                                     Subject = i.Subject,
                                     Priority = i.Priority,
                                     Status = i.Status,
                                     ProjectID = i.ProjectID,
                                     UserID = uJoin.UserID,
                                     Username = uJoin.UserName,
                                     Password = uJoin.Password,
                                     UserRole = uJoin.UserRole,
                                     FirstName = uJoin.FirstName,
                                     LastName = uJoin.LastName,
                                     Email = uJoin.Email,
                                     PhoneNumber = uJoin.PhoneNumber,
                                     Position = uJoin.Position,
                                     TeamName = uJoin.TeamName,
                                     IssueCategoryName = i.IssueCategoryName,
                                     EntryDate = i.EntryDate,
                                     Description = i.Description

                                 });

                    foreach (var item in query)
                    {
                        // build the issue object.
                        var myissue = new Issue()
                        {
                            IssueID = item.IssueID,
                            Subject = item.Subject,
                            CurrentStatus = (Issue.IssueStatus)Enum.Parse(typeof(Issue.IssueStatus), item.Status),
                            CurrentPriority = (Issue.IssuePriority)Enum.Parse(typeof(Issue.IssuePriority), item.Priority),
                            ProjectID = item.ProjectID,
                            IssueCategoryName = item.IssueCategoryName,
                            EntryDate = item.EntryDate ?? DateTime.MinValue,
                            Description = item.Description
                        };

                        // Get the Issue Assignee
                        var user = new User(item.UserID, item.Username, item.Password, item.UserRole, item.FirstName, item.LastName, item.Email, item.PhoneNumber, item.Position, item.TeamName);
                        user.FirstName = item.FirstName;
                        user.LastName = item.LastName;
                        myissue.Assignee = user;

                        issues.Add(myissue);
                    }

                }

            }
            catch (Exception)
            {
                throw;
            }

            return issues;
        }
示例#9
0
        /// <summary>
        /// GetIssueAttachmentsList
        /// </summary>
        /// <param name="issueID"></param>
        /// <returns></returns>
        public static List<IssueAttachment> GetIssueAttachmentsList(int issueID)
        {
            List<IssueAttachment> issueAttachments = new List<IssueAttachment>();

            try
            {
                using (var db = new ProjectManagerEntities())
                {
                    // get the list of file attachments for a specific Issue.
                    var query = from i in db.IssueAttachmentDALs
                                where i.IssueID == issueID
                                select i;

                    foreach (var item in query)
                    {
                        // build the issue  attachment object.
                        var fileAttachment = new IssueAttachment()
                        {
                            IssueAttachmentID = item.IssueAttachmentID,
                            FileName = item.Filename,
                            EntryDate = item.EntryDate,
                            Description = item.Description,
                            UserID = item.UserID,
                            IssueID = item.IssueID,
                            MimeType = item.MimeType
                        };

                        issueAttachments.Add(fileAttachment);
                    }

                }

            }
            catch (Exception)
            {
                throw;
            }

            return issueAttachments;
        }
示例#10
0
        /// <summary>
        /// GetIssueAttachment
        /// </summary>
        /// <param name="issueAttachmentID">int</param>
        /// <returns></returns>
        public static IssueAttachment GetIssueAttachment(int issueAttachmentID)
        {
            var issueAttachments = new IssueAttachment();

            try
            {
                using (var db = new ProjectManagerEntities())
                {
                    // get the file attachment.
                    var query = (from i in db.IssueAttachmentDALs
                                 where i.IssueAttachmentID == issueAttachmentID
                                select i).First();

                    if (query != null)
                    {
                        issueAttachments.IssueID = query.IssueAttachmentID;
                        issueAttachments.FileName = query.Filename;
                        issueAttachments.EntryDate = query.EntryDate;
                        issueAttachments.Description = query.Description;
                        issueAttachments.IssueID = query.IssueID;
                        issueAttachments.UserID = query.UserID;
                        issueAttachments.MimeType = query.MimeType;
                        issueAttachments.FileData = query.FileData;
                    }
                }

            }
            catch (Exception)
            {
                throw;
            }

            return issueAttachments;
        }
示例#11
0
        /// <summary>
        /// Get Issue
        /// </summary>
        /// <param name="issueID">int</param>
        /// <returns>Issue</returns>
        public static Issue GetIssue(int issueID)
        {
            var issue = new Issue();

            try
            {
                // get issue information from database.
                using (var db = new ProjectManagerEntities())
                {
                    var query = (from i in db.IssueDALs
                                 join ia in db.IssueAssignmentDALs on i.IssueID equals ia.IssueID into IandIA
                                 from iaJoin in IandIA.DefaultIfEmpty()
                                 join u in db.UserDALs on iaJoin.UserID equals u.UserID into IAandU
                                 from uJoin in IAandU.DefaultIfEmpty()
                                 where i.IssueID == issueID
                                 select new
                                 {
                                     IssueID = iaJoin.IssueID,
                                     Subject = i.Subject,
                                     Priority = i.Priority,
                                     Status = i.Status,
                                     ProjectID = i.ProjectID,
                                     UserID = uJoin.UserID,
                                     Username = uJoin.UserName,
                                     Password = uJoin.Password,
                                     UserRole = uJoin.UserRole,
                                     FirstName = uJoin.FirstName,
                                     LastName = uJoin.LastName,
                                     Email = uJoin.Email,
                                     PhoneNumber = uJoin.PhoneNumber,
                                     Position = uJoin.Position,
                                     TeamName = uJoin.TeamName,
                                     IssueCategoryName = i.IssueCategoryName,
                                     EntryDate = i.EntryDate,
                                     Description = i.Description

                                 }).FirstOrDefault();

                    if (query != null)
                    {
                        // build the issue object.
                        issue = new Issue()
                        {
                            IssueID = query.IssueID,
                            Subject = query.Subject,
                            CurrentStatus = (Issue.IssueStatus)Enum.Parse(typeof(Issue.IssueStatus), query.Status),
                            CurrentPriority = (Issue.IssuePriority)Enum.Parse(typeof(Issue.IssuePriority), query.Priority),
                            ProjectID = query.ProjectID,
                            IssueCategoryName = query.IssueCategoryName,
                            EntryDate = query.EntryDate ?? DateTime.MinValue,
                            Description = query.Description

                        };

                        // Get the Issue Assignee
                        var user = new User(query.UserID, query.Username, query.Password, query.UserRole, query.FirstName, query.LastName, query.Email, query.PhoneNumber, query.Position, query.TeamName);
                        user.FirstName = query.FirstName;
                        user.LastName = query.LastName;
                        issue.Assignee = user;

                    }
                }

            }
            catch (Exception)
            {
                throw;
            }

            return issue;
        }
示例#12
0
        /// <summary>
        /// EditIssue
        /// </summary>
        /// <param name="issue">Issue</param>
        /// <returns>bool</returns>
        public static bool EditIssue(Issue issue)
        {
            try
            {
                var returnValue = false;

                // wrap in a TransactionScope since we are updating two tables - Issues and IssueAssignments
                using (TransactionScope transaction = new TransactionScope())
                {

                    using (var db = new ProjectManagerEntities())
                    {
                        db.Connection.Open();

                        var query = (from i in db.IssueDALs
                                    where i.IssueID == issue.IssueID
                                    select i).First();

                        if (query != null)
                        {
                            query.IssueID = issue.IssueID;
                            query.Subject = issue.Subject;
                            query.ProjectID = issue.ProjectID;
                            query.Priority = issue.CurrentPriority.ToString();
                            query.Status = issue.CurrentStatus.ToString();
                            query.Description = issue.Description;
                            query.IssueCategoryName = issue.IssueCategoryName;
                            query.EntryDate = issue.EntryDate;
                        }

                        // update issue.
                        db.SaveChanges();

                        // get Issue Assignment for this issue.
                        var query2 = (from ia in db.IssueAssignmentDALs
                                     where ia.IssueID == issue.IssueID
                                     select ia).First();

                        if (query2 != null)
                        {
                            query2.IssueID = issue.IssueID;
                            query2.UserID = issue.Assignee.UserId;
                        }

                        // update issue assignment.
                        db.SaveChanges();

                    }

                    transaction.Complete();

                    // successfully inserted.
                    returnValue = true;
                }

                return returnValue;

            }
            catch (TransactionAbortedException)
            {
                throw;
            }
            catch (Exception)
            {

                throw;
            }
        }
示例#13
0
        /// <summary>
        /// DeleteIssueAttachment
        /// </summary>
        /// <param name="issueAttachmentID">int</param>
        /// <returns>bool</returns>
        public static bool DeleteIssueAttachment(int issueAttachmentID)
        {
            var returnValue = false;
            try
            {
                using (var db = new ProjectManagerEntities())
                {
                    // get the file attachment.
                    var query = (from i in db.IssueAttachmentDALs
                                 where i.IssueAttachmentID == issueAttachmentID
                                 select i).First();

                    if (query != null)
                    {
                        // delete the file attachment.
                        db.DeleteObject(query);
                        db.SaveChanges();
                    }
                }

                returnValue = true;

            }
            catch (Exception)
            {
                throw;
            }
            return returnValue;
        }