Example #1
0
        public static DhtmlxRequest ParseEventRequest(FormCollection form)
        {
            var currentCulture = Thread.CurrentThread.CurrentCulture;

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            var request = new DhtmlxRequest();

            request.SourceId = Int64.Parse(form["id"]);
            request.Action   = (DhtmlxAction)Enum.Parse(typeof(DhtmlxAction), form["!nativeeditor_status"], true);

            if (request.Action != DhtmlxAction.Deleted)
            {
                request.UpdatedEvent = new Event()
                {
                    Id        = (request.Action == DhtmlxAction.Updated) ? (int)request.SourceId : 0,
                    Text      = form["text"],
                    StartDate = DateTime.Parse(form["start_date"]),
                    EndDate   = DateTime.Parse(form["end_date"]),
                    Type      = (form["type"] != null) ? form["type"] : "",
                };
            }

            Thread.CurrentThread.CurrentCulture = currentCulture;
            return(request);
        }
Example #2
0
        public static List <DhtmlxRequest> Parse(FormCollection form, string mode)
        {
            // save current culture and change it to InvariantCulture for data parsing
            var currentCulture = Thread.CurrentThread.CurrentCulture;

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            var dataActions = new List <DhtmlxRequest>();
            var prefixes    = form["ids"].Split(',');

            foreach (var prefix in prefixes)
            {
                var request = new DhtmlxRequest();

                // lambda expression for form data parsing
                Func <string, string> parse = x => form[String.Format("{0}_{1}", prefix, x)];

                request.Mode     = (GanttMode)Enum.Parse(typeof(GanttMode), mode, true);
                request.Action   = (DhtmlxAction)Enum.Parse(typeof(DhtmlxAction), parse("!nativeeditor_status"), true);
                request.SourceId = Int64.Parse(parse("id"));

                // parse gantt task
                if (request.Action != DhtmlxAction.Deleted && request.Mode == GanttMode.Tasks)
                {
                    request.UpdatedTask = new Task()
                    {
                        Id        = (request.Action == DhtmlxAction.Updated) ? (int)request.SourceId : 0,
                        Text      = parse("text"),
                        StartDate = DateTime.Parse(parse("start_date")),
                        Duration  = Int32.Parse(parse("duration")),
                        Progress  = (parse("progress") != null)? Decimal.Parse(parse("progress")) : 0,
                        ParentId  = (parse("parent") != "0") ? Int32.Parse(parse("parent")) : (int?)null,
                        SortOrder = (parse("order") != null) ? Int32.Parse(parse("order")) : 0,
                        Type      = parse("type")
                    };
                }
                // parse gantt link
                else if (request.Action != DhtmlxAction.Deleted && request.Mode == GanttMode.Links)
                {
                    request.UpdatedLink = new Link()
                    {
                        Id           = (request.Action == DhtmlxAction.Updated) ? (int)request.SourceId : 0,
                        SourceTaskId = Int32.Parse(parse("source")),
                        TargetTaskId = Int32.Parse(parse("target")),
                        Type         = parse("type")
                    };
                }

                dataActions.Add(request);
            }

            // return current culture back
            Thread.CurrentThread.CurrentCulture = currentCulture;

            return(dataActions);
        }
Example #3
0
        public static List<DhtmlxRequest> Parse(FormCollection form, string mode)
        {
            // save current culture and change it to InvariantCulture for data parsing
            var currentCulture = Thread.CurrentThread.CurrentCulture;
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            var dataActions = new List<DhtmlxRequest>();
            var prefixes = form["ids"].Split(',');

            foreach (var prefix in prefixes)
            {
                var request = new DhtmlxRequest();

                // lambda expression for form data parsing
                Func<string, string> parse = x => form[String.Format("{0}_{1}", prefix, x)];

                request.Mode = (GanttMode)Enum.Parse(typeof(GanttMode), mode, true);
                request.Action = (DhtmlxAction)Enum.Parse(typeof(DhtmlxAction), parse("!nativeeditor_status"), true);
                request.SourceId = Int64.Parse(parse("id"));

                // parse gantt task
                if (request.Action != DhtmlxAction.Deleted && request.Mode == GanttMode.Tasks)
                {
                    request.UpdatedTask = new Task()
                    {
                        Id = (request.Action == DhtmlxAction.Updated) ? (int)request.SourceId : 0,
                        Text = parse("text"),
                        StartDate = DateTime.Parse(parse("start_date")),
                        Duration = Int32.Parse(parse("duration")),
                        Progress = (parse("progress") != null)? Decimal.Parse(parse("progress")) : 0,
                        ParentId = (parse("parent") != "0") ? Int32.Parse(parse("parent")) : (int?)null,
                        SortOrder = (parse("order") != null) ? Int32.Parse(parse("order")) : 0,
                        Type = parse("type")
                    };
                }
                // parse gantt link
                else if (request.Action != DhtmlxAction.Deleted && request.Mode == GanttMode.Links)
                {
                    request.UpdatedLink = new Link()
                    {
                        Id = (request.Action == DhtmlxAction.Updated) ? (int)request.SourceId : 0,
                        SourceTaskId = Int32.Parse(parse("source")),
                        TargetTaskId = Int32.Parse(parse("target")),
                        Type = parse("type")
                    };
                }

                dataActions.Add(request);
            }

            // return current culture back
            Thread.CurrentThread.CurrentCulture = currentCulture;

            return dataActions;
        }
Example #4
0
        private ContentResult EventRespose(DhtmlxRequest eventData)
        {
            var actions = new List<XElement>();
            var action = new XElement("action");
            action.SetAttributeValue("type", eventData.Action.ToString().ToLower());
            action.SetAttributeValue("sid", eventData.SourceId);
            action.SetAttributeValue("tid", (eventData.Action != DhtmlxAction.Inserted) ? eventData.SourceId : eventData.UpdatedEvent.Id);
            actions.Add(action);

            var data = new XDocument(new XElement("data", actions));
            data.Declaration = new XDeclaration("1.0", "utf-8", "true");
            return Content(data.ToString(), "text/xml");
        }
Example #5
0
        public static DhtmlxRequest ParseEventRequest(FormCollection form)
        {
            var currentCulture = Thread.CurrentThread.CurrentCulture;
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            var request = new DhtmlxRequest();
            request.SourceId = Int64.Parse(form["id"]);
            request.Action = (DhtmlxAction)Enum.Parse(typeof(DhtmlxAction), form["!nativeeditor_status"], true);

            if (request.Action != DhtmlxAction.Deleted)
            {
                request.UpdatedEvent = new Event()
                {
                    Id = (request.Action == DhtmlxAction.Updated) ? (int)request.SourceId : 0,
                    Text = form["text"],
                    StartDate = DateTime.Parse(form["start_date"]),
                    EndDate = DateTime.Parse(form["end_date"]),
                    Type = (form["type"] != null) ? form["type"] : "",
                };
            }

            Thread.CurrentThread.CurrentCulture = currentCulture;
            return request;
        }
Example #6
0
 /// <summary>
 /// Update gantt tasks
 /// </summary>
 /// <param name="ganttData">GanttData object</param>
 private void UpdateTasks(DhtmlxRequest ganttData)
 {
     switch (ganttData.Action)
     {
         case DhtmlxAction.Inserted:
             // add new gantt task entity
             long? parent = ganttData.UpdatedTask.ParentId;
             int projectID = -1;
             while (parent != null)
             {
                 projectID = (int)parent;
                 parent = _ganttService.GetTask((long)parent).ParentId;
             }
             ganttData.UpdatedTask.ProjectId = projectID ;
             _ganttService.InsertTask(ganttData.UpdatedTask);
             break;
         case DhtmlxAction.Deleted:
             // remove gantt task
             _ganttService.DeleteTaskLinks(ganttData.SourceId);
             _ganttService.DeleteTask(_ganttService.GetTask(ganttData.SourceId));
             break;
         case DhtmlxAction.Updated:
             // update gantt task
             _ganttService.UpdateTask(ganttData.UpdatedTask);
             //db.Entry(db.Tasks.Find(ganttData.UpdatedTask.Id)).CurrentValues.SetValues(ganttData.UpdatedTask);
             break;
         default:
             ganttData.Action = DhtmlxAction.Error;
             break;
     }
 }
Example #7
0
 /// <summary>
 /// Update gantt links
 /// </summary>
 /// <param name="ganttData">GanttData object</param>
 private void UpdateLinks(DhtmlxRequest ganttData)
 {
     switch (ganttData.Action)
     {
         case DhtmlxAction.Inserted:
             // add new gantt link entity
             ganttData.UpdatedLink.ProjectId = _ganttService.GetTask(ganttData.UpdatedLink.SourceTaskId).ProjectId;
             _ganttService.InsertLink(ganttData.UpdatedLink);
             break;
         case DhtmlxAction.Deleted:
             // remove gantt link
             _ganttService.DeleteLink(_ganttService.GetLink(ganttData.SourceId));
             break;
         case DhtmlxAction.Updated:
             // update gantt link
             _ganttService.UpdateLink(ganttData.UpdatedLink);
             //db.Entry(db.Tasks.Find(ganttData.UpdatedTask.Id)).CurrentValues.SetValues(ganttData.UpdatedTask);
             break;
         default:
             ganttData.Action = DhtmlxAction.Error;
             break;
     }
 }