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); }