Example #1
0
        public void CreateDeliverableStatusRecords(StatusInputModel obj)
        {
            var conn = new SqlConnection("Data Source=localhost\\SQLENTERPRISE;Initial Catalog=Planner;Integrated Security=SSPI;MultipleActiveResultSets=true");
            try
            {
                using (conn)
                {
                    conn.Open();

                    var cmd = new SqlCommand("sp_insert_milestonestatus", conn);
                    cmd.Parameters.Add("@ReleaseId", System.Data.SqlDbType.Int).Value = obj.ReleaseId;
                    cmd.Parameters.Add("@MilestoneId", System.Data.SqlDbType.Int).Value = obj.MilestoneId;
                    cmd.Parameters.Add("@DeliverableId", System.Data.SqlDbType.Int).Value = obj.DeliverableId;
                    cmd.Parameters.Add("@ProjectId", System.Data.SqlDbType.Int).Value = obj.ProjectId;
                    cmd.Parameters.Add("@ActivityId", System.Data.SqlDbType.Int).Value = 0;
                    cmd.Parameters.Add("@HoursRemaining", System.Data.SqlDbType.Int).Value = 0;

                    cmd.CommandType = System.Data.CommandType.StoredProcedure;

                    // completely renew the ProjectActivityStatuses for the Milestone Deliverables as set in the client app
                    var cmdDelCross = new SqlCommand(string.Format("DELETE FROM MilestoneStatus WHERE ReleaseId = {0} AND MilestoneId = {1} AND DeliverableId = {2} AND ProjectId = {3}", obj.ReleaseId, obj.MilestoneId, obj.DeliverableId, obj.ProjectId), conn);
                    cmdDelCross.ExecuteNonQuery();

                    foreach (var itm in obj.ActivityStatuses)
                    {
                        //cmd.Parameters["@ProjectId"].Value = itm.ProjectId;
                        cmd.Parameters["@ActivityId"].Value = itm.ActivityId;
                        cmd.Parameters["@HoursRemaining"].Value = itm.HoursRemaining;

                        cmd.ExecuteNonQuery();
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Example #2
0
 public void GenerateStatusRecords(ReleaseModels.Release rel)
 {
     // create status records when not existing based on release configuration
     foreach (var ms in rel.Milestones)
     {
         foreach (var deliverable in ms.Deliverables)
         {
             foreach (var proj in rel.Projects)
             {
                 if (!this.StatusRecordsExist(rel.Id, ms.Id, deliverable.Id, proj.Id))
                 {
                     var input = new StatusInputModel
                     {
                         ProjectId = proj.Id,
                         DeliverableId = deliverable.Id,
                         MilestoneId =  ms.Id,
                         ReleaseId = rel.Id,
                         ActivityStatuses = new List<DeliverableActivityStatusInputModel>()
                     };
                     foreach (var act in deliverable.ConfiguredActivities)
                     {
                         input.ActivityStatuses.Add(new DeliverableActivityStatusInputModel { ActivityId = act.Id, HoursRemaining = 0 });
                     }
                     this.CreateDeliverableStatusRecords(input);
                 }
             }
         }
     }
 }
Example #3
0
        public void SaveDeliverableStatus(DeliverableStatusInputModel obj)
        {
            var input = new StatusInputModel { DeliverableId = obj.DeliverableId, MilestoneId = obj.MilestoneId, ReleaseId = obj.ReleaseId, ActivityStatuses = new List<DeliverableActivityStatusInputModel>() };

            foreach (var proj in obj.Scope)
            {
                input.ProjectId = proj.Id;
                foreach (var act in proj.Workload)
                {
                    input.ActivityStatuses.Add(new DeliverableActivityStatusInputModel { ActivityId = act.Activity.Id, HoursRemaining = act.HoursRemaining });
                }

                this.CreateDeliverableStatusRecords(input);
                input.ActivityStatuses.Clear();
            }
        }