示例#1
0
        public ContentResult Save(FormCollection form)
        {
            var dataActions = GanttRequest.Parse(form, Request.QueryString["gantt_mode"]);

            try
            {
                foreach (var ganttData in dataActions)
                {
                    switch (ganttData.Mode)
                    {
                    case GanttMode.Tasks:
                        UpdateTasks(ganttData);
                        break;

                    case GanttMode.Links:
                        UpdateLinks(ganttData);
                        break;
                    }
                }
                // db.SaveChanges();
            }
            catch
            {
                // return error to client if something went wrong
                dataActions.ForEach(g => { g.Action = GanttAction.Error; });
            }
            return(GanttRespose(dataActions));
        }
        /// <summary>
        /// Update gantt links
        /// </summary>
        /// <param name="ganttData">GanttData object</param>
        private void UpdateLinks(int projectScheduleVersionID, int projectID, GanttRequest ganttData)
        {
            switch (ganttData.Action)
            {
            case GanttAction.Inserted:
                // set ProjectID and ProjectScheduleVersionID
                ganttData.UpdatedLink.ProjectID = projectID;
                ganttData.UpdatedLink.ProjectScheduleVersionID = projectScheduleVersionID;
                // add new gantt link
                db.GanttLinks.Add(ganttData.UpdatedLink);
                break;

            case GanttAction.Deleted:
                // remove gantt link
                db.GanttLinks.Remove(db.GanttLinks.Find(ganttData.SourceId));
                break;

            case GanttAction.Updated:
                // set ProjectID and ProjectScheduleVersionID
                ganttData.UpdatedLink.ProjectID = projectID;
                ganttData.UpdatedLink.ProjectScheduleVersionID = projectScheduleVersionID;
                // update gantt link
                db.Entry(db.GanttLinks.Find(ganttData.UpdatedLink.GanttLinkId)).CurrentValues.SetValues(ganttData.UpdatedLink);
                break;

            default:
                ganttData.Action = GanttAction.Error;
                break;
            }
        }
示例#3
0
        /// <summary>
        /// Update gantt links
        /// </summary>
        /// <param name="ganttData">GanttData object</param>
        private void UpdateLinks(GanttRequest ganttData)
        {
            switch (ganttData.Action)
            {
            case GanttAction.Inserted:
                // add new gantt link
                //db.Links.Add(ganttData.UpdatedLink);
                LinksRepository.Insert(ganttData.UpdatedLink);
                break;

            case GanttAction.Deleted:
                // remove gantt link
                //db.Links.Remove(db.Links.Find(ganttData.SourceId));
                LinksRepository.Delete(ganttData.UpdatedLink);
                break;

            case GanttAction.Updated:
                // update gantt link
                //db.Entry(db.Links.Find(ganttData.UpdatedLink.Id)).CurrentValues.SetValues(ganttData.UpdatedLink);
                LinksRepository.Update(ganttData.UpdatedLink);
                break;

            default:
                ganttData.Action = GanttAction.Error;
                break;
            }
        }
示例#4
0
        /// <summary>
        /// Update gantt tasks
        /// </summary>
        /// <param name="ganttData">GanttData object</param>
        private void UpdateTasks(GanttRequest ganttData)
        {
            switch (ganttData.Action)
            {
            case GanttAction.Inserted:
                // add new gantt task entity
                db.Tasks.Add(ganttData.UpdatedTask);
                break;

            case GanttAction.Deleted:
                // remove gantt tasks
                db.Tasks.Remove(db.Tasks.Find(ganttData.SourceId));
                break;

            case GanttAction.Updated:
                // update gantt task
                db.Entry(db.Tasks.Find(ganttData.UpdatedTask.Id)).CurrentValues.SetValues(ganttData.UpdatedTask);
                break;

            default:
                ganttData.Action = GanttAction.Error;
                break;
            }
        }