public ActionResult EditDate(mc_report_params mr)
        {
            try
            {
                var u = db.mc_report_params.Find(mr.id);
                //try parse date
                bool dateOk = false;
                if (!(mr.current_value.Contains("NOW")))
                {
                    DateTime tryDate;
                    dateOk = DateTime.TryParse(mr.current_value, out tryDate);
                }
                else if (mr.current_value.Contains("NOW"))
                {
                    dateOk = true;
                }

                //check modifier
                bool modOk  = false;
                int  tryInt = 0;
                if (String.IsNullOrEmpty(mr.value_modifier) || Int32.TryParse(mr.value_modifier, out tryInt))
                {
                    modOk = true;
                }

                if (dateOk)
                {
                    u.current_value = mr.current_value;
                }
                if (modOk)
                {
                    u.value_modifier = mr.value_modifier;
                }
                u.modifier_interval = mr.modifier_interval;
                db.SaveChanges();

                return(RedirectToAction("Details", "Reports", new { id = u.report_id }));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult EditNumber(mc_report_params mr)
        {
            try
            {
                var u      = db.mc_report_params.Find(mr.id);
                int tryInt = 0;

                if (Int32.TryParse(mr.current_value, out tryInt))
                {
                    u.current_value = mr.current_value;
                    db.SaveChanges();
                }
                return(RedirectToAction("Details", "Reports", new { id = u.report_id }));
            }
            catch
            {
                return(View());
            }
        }
Exemple #3
0
        public ActionResult Create(CreateReportViewModel mcReports)
        {
            try
            {
                var sFile   = Request.Form["SelectedReportFile.SelectedFile"];
                var sFolder = Request.Form["SelectedOutputFolder.SelectedFolder"];
                if (sFile == null)
                {
                    sFile = "";
                }
                if (sFolder == null)
                {
                    sFolder = "";
                }
                mcReports.SelectedOutputFolder.SelectedFolder = sFolder;
                mcReports.SelectedReportFile.SelectedFile     = sFile;
                if (String.IsNullOrWhiteSpace(mcReports.name))
                {
                    ModelState.AddModelError("name", "The report must have a name.");
                }
                if (sFile.Length < 1)
                {
                    ModelState.AddModelError("SelectedReportFile.SelectedFile", "No report file was selected");
                }
                if (sFolder.Length < 1)
                {
                    ModelState.AddModelError("SelectedOutputFolder.SelectedFolder", "No report output location was selected or location was not valid.");
                }
                try
                {
                    if (!(new FileInfo(sFile).Exists))
                    {
                        ModelState.AddModelError("SelectedReportFile.SelectedFile", "No report file was selected or report file is not valid.");
                    }
                }
                catch (Exception)
                {
                    ModelState.AddModelError("SelectedReportFile.SelectedFile", "No report file was selected or report file is not valid.");
                }
                try
                {
                    if (!(new DirectoryInfo(sFolder).Exists))
                    {
                        ModelState.AddModelError("SelectedOutputFolder_SelectedFolder", "No report output location was selected or location was not valid. Exception");
                    }
                }
                catch (Exception)
                {
                    ModelState.AddModelError("SelectedOutputFolder_SelectedFolder", "No report output location was selected or location was not valid. Exception");
                }

                if (ModelState.IsValid)
                {
                    //load the crystal report
                    CrRptDef crRpt = new CrRptDef(sFile);

                    //save report to database and retrieve key
                    mc_reports mc = new mc_reports
                    {
                        name         = mcReports.name,
                        description  = mcReports.description,
                        cr_filepath  = sFile,
                        output_path  = sFolder,
                        date_created = DateTime.Now,
                        date_changed = DateTime.Now,
                        user_created = User.Identity.Name,
                        user_changed = User.Identity.Name
                    };
                    db.mc_reports.Add(mc);
                    db.SaveChanges();
                    Console.WriteLine(mc.id);
                    var id = mc.id;

                    //insert the child entities
                    foreach (var p in crRpt.parameters)
                    {
                        var mrp = new mc_report_params
                        {
                            report_id     = mc.id,
                            name          = p.name,
                            type          = p.type,
                            default_value = p.default_value
                        };
                        db.mc_report_params.Add(mrp);
                    }
                    db.SaveChanges();

                    foreach (var f in crRpt.forumulafields)
                    {
                        mc_report_formulas mrf = new mc_report_formulas();
                        mrf.report_id    = mc.id;
                        mrf.name         = f.name;
                        mrf.formula_name = f.formula_name;
                        mrf.code         = f.code;
                        mrf.use_formula  = f.use_formula;
                        db.mc_report_formulas.Add(mrf);
                    }
                    db.SaveChanges();
                    return(RedirectToAction("Edit", new { id = id }));
                }
                else
                {
                    return(View(mcReports));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("name", "A fatal exception has occured your report was not loaded. Please contact the Application Development team for assistance.");
                return(View(mcReports));
            }
        }