Example #1
0
        public static ForecastViewConext Handler(RGEContext context, NameValueCollection parms)
        {
            ForecastViewConext viewcontext = context.GetViewContext(VIEWNAME) as ForecastViewConext;

            if (viewcontext == null)
            {
                context.SaveViewContext(new RGEContext.ViewContextEntry(ForecastViewConext.VIEWNAME, viewcontext = new ForecastViewConext(context)));
            }

            if (viewcontext.Regim != REGIM.INIT)
            {
                viewcontext.Regim = REGIM.CHOICE;
                string date = parms["date"];
                if (String.IsNullOrEmpty(date))
                {
                    viewcontext.Regim = REGIM.ERROR;
                }
                else
                {
                    DateTime incident_date = DateTime.MinValue;
                    if (DateTime.TryParse(date, out incident_date))
                    {
                        viewcontext.Incident_date = (DateTime?)incident_date;
                    }
                    else
                    {
                        viewcontext.Regim = REGIM.ERROR;
                    }
                }

                string date_message = parms["date_message"];
                if (String.IsNullOrEmpty(date_message))
                {
                    viewcontext.Regim = REGIM.ERROR;
                }
                else
                {
                    DateTime incident_date_message = DateTime.MinValue;
                    if (DateTime.TryParse(date_message, out incident_date_message))
                    {
                        viewcontext.Incident_date_message = (DateTime?)incident_date_message;
                    }
                    else
                    {
                        viewcontext.Regim = REGIM.ERROR;
                    }
                }

                string parmpetrochemicaltype = parms["petrochemicaltype"];
                if (String.IsNullOrEmpty(parmpetrochemicaltype))
                {
                    viewcontext.Regim = REGIM.ERROR;
                }
                else
                {
                    int code = -1;
                    if (int.TryParse(parmpetrochemicaltype, out code))
                    {
                        if (viewcontext.petrochemicaltype == null || viewcontext.petrochemicaltype.code_type != code)
                        {
                            viewcontext.petrochemicaltype = new PetrochemicalType();
                            if (!PetrochemicalType.GetByCode(context, code, ref viewcontext.petrochemicaltype))
                            {
                                viewcontext.Regim = REGIM.ERROR;
                            }
                        }
                    }
                    else
                    {
                        viewcontext.Regim = REGIM.ERROR;
                    }
                }

                string incidenttype = parms["incidenttype"];
                if (String.IsNullOrEmpty(incidenttype))
                {
                    viewcontext.Regim = REGIM.ERROR;
                }
                else
                {
                    int code = -1;
                    if (int.TryParse(incidenttype, out code))
                    {
                        viewcontext.Incident_type_code = (int?)code;
                        if (viewcontext.incidenttype == null || viewcontext.incidenttype.type_code != code)
                        {
                            if (!IncidentType.GetByCode(context, code, out viewcontext.incidenttype))
                            {
                                viewcontext.Regim = REGIM.ERROR;
                            }
                        }
                    }
                    else
                    {
                        viewcontext.Regim = REGIM.ERROR;
                    }
                }

                string volume = parms["volume"];
                if (String.IsNullOrEmpty(volume))
                {
                    viewcontext.Regim = REGIM.ERROR;
                }
                else
                {
                    float v = 0.0f;
                    if (float.TryParse(volume, out v))
                    {
                        viewcontext.Volume = (float?)v;
                    }
                    else
                    {
                        viewcontext.Regim = REGIM.ERROR;
                    }
                }

                string temperature = parms["temperature"];
                if (String.IsNullOrEmpty(temperature))
                {
                    viewcontext.Regim = REGIM.ERROR;
                }
                else
                {
                    float t = 0.0f;
                    if (float.TryParse(temperature, out t))
                    {
                        viewcontext.Temperature = (float?)t;
                    }
                    else
                    {
                        viewcontext.Regim = REGIM.ERROR;
                    }
                }

                if (viewcontext.Regim == REGIM.CHOICE)
                {
                    viewcontext.Regim = REGIM.SET;
                }
            }
            else
            {
                viewcontext.Regim = REGIM.CHOICE;
            }
            return(viewcontext);
        }
        public ActionResult Forecast( )
        {
            RGEContext   context = null;
            ActionResult view    = View("Index");

            ViewBag.EGHLayout = "RGE.Forecast";
            try
            {
                context = new RGEContext(this);
                view    = View(context);

                if (!ForecastViewConext.Handler(context, this.HttpContext.Request.Params))
                {
                    if (ChoiceRiskObjectContext.Handler(context, this.HttpContext.Request.Params))
                    {
                    }
                }
                else
                {
                    string menuitem = this.HttpContext.Request.Params["menuitem"];
                    if (menuitem.Equals("Forecast.Forecast"))
                    {
                        ForecastViewConext viewcontext = context.GetViewContext("Forecast") as ForecastViewConext;
                        if (viewcontext != null)
                        {
                            RiskObject riskobject = new RiskObject();
                            if (RiskObject.GetById(context, (int)viewcontext.RiskObjectId, ref riskobject))
                            {
                                PetrochemicalType petrochemicaltype = new PetrochemicalType();
                                if (PetrochemicalType.GetByCode(context, (int)viewcontext.Petrochemical_type_code, ref petrochemicaltype))
                                {
                                    SpreadPoint spreadpoint = new SpreadPoint(riskobject, petrochemicaltype, (float)viewcontext.Volume);
                                    EGH01DB.Types.IncidentType incidenttype = new EGH01DB.Types.IncidentType();
                                    if (EGH01DB.Types.IncidentType.GetByCode(context, (int)viewcontext.Incident_type_code, out incidenttype))
                                    {
                                        Incident incident = new Incident(
                                            (DateTime)viewcontext.Incident_date,
                                            (DateTime)viewcontext.Incident_date_message,
                                            incidenttype,
                                            spreadpoint
                                            );
                                        viewcontext.ecoforecast = new RGEContext.ECOForecast(incident);
                                        viewcontext.Regim       = ForecastViewConext.REGIM.REPORT;
                                    }
                                    else
                                    {
                                        viewcontext.Regim = ForecastViewConext.REGIM.RUNERROR;
                                    }
                                }
                                else
                                {
                                    viewcontext.Regim = ForecastViewConext.REGIM.RUNERROR;
                                }
                            }
                            else
                            {
                                viewcontext.Regim = ForecastViewConext.REGIM.RUNERROR;
                            }
                        }
                        else
                        {
                            viewcontext.Regim = ForecastViewConext.REGIM.RUNERROR;
                        }
                    }
                    else if (menuitem.Equals("Forecast.Cancel"))
                    {
                        view = View("Index", context);                                         //view = Redirect("Index");
                    }
                    else if (menuitem.Equals("Forecast.Save"))
                    {
                        ForecastViewConext             viewcontext = context.GetViewContext("Forecast") as ForecastViewConext;
                        EGH01DB.RGEContext.ECOForecast forecast    = viewcontext.ecoforecast;
                        //XmlNode node =  forecast.toXmlNode("Отладка");
                        //XmlDocument doc = new XmlDocument();
                        //doc.AppendChild(doc.ImportNode(node, true));
                        //doc.Save(@"C:\Report.xml");

                        if (RGEContext.ECOForecast.Create(context, forecast, "отладка"))
                        {
                        }
                    }
                }
            }
            catch (RGEContext.Exception e)
            {
                ViewBag.msg = e.message;
            }
            catch (Exception e)
            {
                ViewBag.msg = e.Message;
            }
            return(view);
        }