private Activity SaveActivity(CreateIssue model, Issue existingIssue, Issue issuePreviousVersion, Status currentIssueStatus, int issueId, bool isNewIssue = false)
        {
            bool isStateChanged = false;
            var activity = new Activity() { CreatedByID = UserID, ObjectID = issueId, ObjectType = "Issue" };

            if (isNewIssue)
            {
                activity.ActivityDesc = "Created";
                activity.NewState = model.Title;
                isStateChanged = true;
            }
            else
            {
                if (issuePreviousVersion.StatusID != existingIssue.StatusID)
                {
                    // status of issue updated
                    activity.OldState = model.Title;
                    activity.ActivityDesc = "Changed status";
                    activity.NewState = currentIssueStatus.Name;
                    isStateChanged = true;
                }

            }

            activity.TeamID = TeamID;

            if (isStateChanged)
            {
                var result = repo.SaveActivity(activity);
                if (!result.Status)
                {
                    log.Error(result);
                }
                return repo.GetActivity(activity.ID);


            }
            return null;
        }
        private void LoadDefaultIssueValues(Issue issue, CreateIssue model)
        {
            issue.PriorityID = model.SelectedPriority;
            if (issue.PriorityID == 0)
                issue.PriorityID = 1;

            issue.ProjectID = model.SelectedProject;
            if (issue.ProjectID == 0)
            {
                var teamMember = repo.GetTeamMember(UserID, TeamID);
                if (teamMember.DefaultProjectID == null)
                    throw new MissingSettingsException("Default Project not set", "Default Project");
                //get from team member 
                issue.ProjectID = teamMember.DefaultProjectID.Value;
            }
            issue.StatusID = model.SelectedStatus;
            if ((model.Id == 0) && (model.SelectedStatus == 0))
            {
                issue.StatusID = 1;
            }
            issue.CategoryID = model.SelectedCategory;
            if (issue.CategoryID == 0)
                issue.CategoryID = 1;

            issue.Location = (string.IsNullOrEmpty(model.SelectedIteration) ? "SPRNT" : model.SelectedIteration);

        }
        public int SaveIssue(CreateIssue issue)
        {
            Issue issueEntity = null;
            using (var db = new TeamEntitiesConn())
            {

                if (issue.Id > 0)
                {
                    issueEntity = db.Issues.FirstOrDefault(s => s.ID == issue.Id);
                    if (issueEntity == null)
                    {
                        return 0;
                    }
                }
                else
                {
                    issueEntity = new Issue();
                }
                issueEntity.Title = issue.Title;
                issueEntity.Description = issue.Description;
                issueEntity.ProjectID = issue.ProjectID;
                issueEntity.TeamID = issue.TeamID;
                issueEntity.CategoryID = issue.SelectedCategory;

                issueEntity.CreatedByID = issue.CreatedByID;
                issueEntity.Location = issue.Iteration;
                issueEntity.StatusID = issue.SelectedStatus;
                issueEntity.PriorityID = issue.SelectedPriority;

                if (issueEntity.CategoryID == 0)
                {
                    issueEntity.CategoryID = db.Categories.FirstOrDefault().ID;
                }
                if (issueEntity.StatusID == 0)
                {

                    var status = db.Status.FirstOrDefault(s => s.Code == "New");
                    issueEntity.StatusID = status.ID;
                }
                if (issueEntity.PriorityID == null || issueEntity.PriorityID.Value == 0)
                {
                    var priority = db.Priorities.FirstOrDefault(s => s.Code == "Normal");
                    issueEntity.PriorityID = priority.ID;
                }

                if (issue.Id == 0)
                {
                    issueEntity.CreatedDate = DateTime.UtcNow;
                    issueEntity.Active = true;
                    db.Issues.Add(issueEntity);
                }
                else
                {
                    issueEntity.ModifiedDate = DateTime.Now;
                    issueEntity.ModifiedByID = issue.CreatedByID;

                    db.Entry(issueEntity).State = EntityState.Modified;

                }

                db.SaveChanges();
                return issueEntity.ID;
            }
        }
 public IssueVM GetIssueVM(Issue bug)
 {
     var issueVM = new IssueDetailVM { ID = bug.ID, Title = bug.Title, Description = bug.Description };
     issueVM.OpenedBy = bug.CreatedBy.FirstName;
     issueVM.PriorityName = bug.Priority.Name;
     issueVM.StatusName = bug.Status.Name;
     issueVM.CategoryName = bug.Category.Name;
     issueVM.ProjectName = (bug.Project!=null?bug.Project.Name:"");
     issueVM.CreatedDate = bug.CreatedDate;
     return issueVM;
 }
 public OperationStatus SaveIssue(Issue issue)
 {
     if (issue.ID == 0)
     {
         issue.Active = true;
         issue.CreatedDate = DateTime.UtcNow;
         db.Issues.Add(issue);
     }
     else
     {                
         issue.ModifiedDate = DateTime.UtcNow;
         db.Entry(issue).State = EntityState.Modified;
     }
     db.SaveChanges();
     return new OperationStatus { Status = true, OperationID = issue.ID };
 }
        public int SaveIssue(CreateIssue issue)
        {
            Issue issueEntity = null;

            using (var db = new TeamEntitiesConn())
            {
                if (issue.Id > 0)
                {
                    issueEntity = db.Issues.FirstOrDefault(s => s.ID == issue.Id);
                    if (issueEntity == null)
                    {
                        return(0);
                    }
                }
                else
                {
                    issueEntity = new Issue();
                }
                issueEntity.Title       = issue.Title;
                issueEntity.Description = issue.Description;
                issueEntity.ProjectID   = issue.ProjectID;
                issueEntity.TeamID      = issue.TeamID;
                issueEntity.CategoryID  = issue.SelectedCategory;

                issueEntity.CreatedByID = issue.CreatedByID;
                issueEntity.Location    = issue.Iteration;
                issueEntity.StatusID    = issue.SelectedStatus;
                issueEntity.PriorityID  = issue.SelectedPriority;

                if (issueEntity.CategoryID == 0)
                {
                    issueEntity.CategoryID = db.Categories.FirstOrDefault().ID;
                }
                if (issueEntity.StatusID == 0)
                {
                    var status = db.Status.FirstOrDefault(s => s.Code == "New");
                    issueEntity.StatusID = status.ID;
                }
                if (issueEntity.PriorityID == null || issueEntity.PriorityID.Value == 0)
                {
                    var priority = db.Priorities.FirstOrDefault(s => s.Code == "Normal");
                    issueEntity.PriorityID = priority.ID;
                }

                if (issue.Id == 0)
                {
                    issueEntity.CreatedDate = DateTime.UtcNow;
                    issueEntity.Active      = true;
                    db.Issues.Add(issueEntity);
                }
                else
                {
                    issueEntity.ModifiedDate = DateTime.Now;
                    issueEntity.ModifiedByID = issue.CreatedByID;

                    db.Entry(issueEntity).State = EntityState.Modified;
                }

                db.SaveChanges();
                return(issueEntity.ID);
            }
        }