Example #1
0
        protected override ApplyResult ProcessApplyItem(ref object obj, out string errormessage, out string successmessage, out bool edited)
        {
            string action = "";

            if (this.Request.Form.action != null)
            {
                action = this.Request.Form.action.Value.ToLower();
            }
            errormessage   = "";
            successmessage = "";
            edited         = false;
            switch (action)
            {
            case "cancel":
                return(ApplyResult.Cancel);
            }

            this.Context.ViewBag.TemplateConst = ReportModule.Template;
            this.Context.ViewBag.FormConst     = ReportModule.Form;

            int id = -1;

            if (this.Request.Form.objectID != null)
            {
                int.TryParse(this.Request.Form.objectID.Value.ToString(), out id);
            }

            string name  = this.Request.Form.Name.Value;
            string group = this.Request.Form.GroupName.Value;

            ConnectionItem connection = null;

            if (this.Request.Form.Connection != null)
            {
                connection = new DBContent().GetConnection(int.Parse(this.Request.Form.Connection.Value));
            }

            FormItem form = null;
            int      formID;

            if (int.TryParse(this.Request.Form.Form, out formID))
            {
                form = new DBContent().GetForm(formID);
            }

            TemplateItem template   = null;
            int          templateID = -1;

            if (int.TryParse(this.Request.Form.Template, out templateID))
            {
                template = new DBContent().GetTemplate(templateID);
            }

            obj = new CreateReportItem(new ReportItemBase(id,
                                                          name,
                                                          group,
                                                          connection,
                                                          form,
                                                          template));

            foreach (KeyValuePair <string, object> kvp in (this.Request.Form as Nancy.DynamicDictionary).ToDictionary())
            {
                string[] split = kvp.Key.Split('.');
                if (split.Count() <= 1)
                {
                    continue;
                }

                SWBaseTag tag = null;
                switch (split[0])
                {
                case ReportModule.Form:
                    tag = (obj as CreateReportItem).ReportItem.FormTags.Where(x => x.Name.Equals(split[1])).FirstOrDefault();
                    if (tag != null)
                    {
                        tag.Value = kvp.Value.ToString();
                    }
                    break;

                case ReportModule.Template:
                    tag = (obj as CreateReportItem).ReportItem.TemplateTags.Where(x => x.Name.Equals(split[1])).FirstOrDefault();
                    if (tag != null)
                    {
                        tag.Value = kvp.Value.ToString();
                    }
                    break;
                }
            }

            switch (action)
            {
            case "save":
                bool result = new DBContent().SaveReport((obj as CreateReportItem).ReportItem, out errormessage);
                if (result)
                {
                    edited = (obj as CreateReportItem).ID > 0;
                    return(ApplyResult.Save);
                }
                else
                {
                    return(ApplyResult.Message);
                }

            default:
                return(ApplyResult.Message);
            }
        }
        protected override ApplyResult ProcessApplyItem(ref object obj, out string errormessage, out string successmessage, out bool edited)
        {
            string action = "";
            if (this.Request.Form.action != null)
            {
                action = this.Request.Form.action.Value.ToLower();
            }
            errormessage = "";
            successmessage = "";
            edited = false;
            switch (action)
            {
                case "cancel":
                    return ApplyResult.Cancel;
            }

            this.Context.ViewBag.TemplateConst = ReportModule.Template;
            this.Context.ViewBag.FormConst = ReportModule.Form;

            int id = -1;
            if (this.Request.Form.objectID != null)
            {
                int.TryParse(this.Request.Form.objectID.Value.ToString(), out id);
            }

            string name = this.Request.Form.Name.Value;
            string group = this.Request.Form.GroupName.Value;

            ConnectionItem connection = null;
            if (this.Request.Form.Connection != null)
            {
                connection = new DBContent().GetConnection(int.Parse(this.Request.Form.Connection.Value));
            }

            FormItem form = null;
            int formID;
            if (int.TryParse(this.Request.Form.Form, out formID))
            {
                form = new DBContent().GetForm(formID);
            }

            TemplateItem template = null;
            int templateID = -1;
            if (int.TryParse(this.Request.Form.Template, out templateID))
            {
                template = new DBContent().GetTemplate(templateID);
            }

            obj = new CreateReportItem(new ReportItemBase(id,
                                       name,
                                       group,
                                       connection,
                                       form,
                                       template));

            foreach (KeyValuePair<string, object> kvp in (this.Request.Form as Nancy.DynamicDictionary).ToDictionary())
            {
                string[] split = kvp.Key.Split('.');
                if (split.Count() <= 1) continue;

                SWBaseTag tag = null;
                switch (split[0])
                {
                    case ReportModule.Form:
                        tag = (obj as CreateReportItem).ReportItem.FormTags.Where(x => x.Name.Equals(split[1])).FirstOrDefault();
                        if (tag != null)
                        {
                            tag.Value = kvp.Value.ToString();
                        }
                        break;
                    case ReportModule.Template:
                        tag = (obj as CreateReportItem).ReportItem.TemplateTags.Where(x => x.Name.Equals(split[1])).FirstOrDefault();
                        if (tag != null)
                        {
                            tag.Value = kvp.Value.ToString();
                        }
                        break;
                }
            }

            switch (action)
            {
                case "save":
                    bool result = new DBContent().SaveReport((obj as CreateReportItem).ReportItem, out errormessage);
                    if (result)
                    {
                        edited = (obj as CreateReportItem).ID > 0;
                        return ApplyResult.Save;
                    }
                    else
                    {
                        return ApplyResult.Message;
                    }
                default:
                    return ApplyResult.Message;
            }
        }