示例#1
0
        /// <summary>
        /// Fits the series to model.
        /// </summary>
        /// <param name="JSONdataWithWeather">The jso ndata with weather.</param>
        /// <param name="modelName">Name of the model.</param>
        /// <param name="fittedDataName">Name of the fitted data.</param>
        /// <param name="weatherColumns">The weather columns.</param>
        /// <returns></returns>
        public List <Consuption> fitSeriesToModel(string JSONdataWithWeather, string modelName, string fittedDataName, WeatherColumns weatherColumns)
        {
            string       evaluate;
            const string fittingDataName = "dataName";

            evaluate = string.Format("{0} <-fromJSON(\'{1}\')", fittingDataName, JSONdataWithWeather);
            var sourceData = rEngine.Evaluate(evaluate);

            CreateWeatherMatrix(fittingDataName, weatherColumns);

            evaluate = string.Format("{0} <- forecast::Arima({1}$Amount,xreg = {2},model={3})", fittedDataName, fittingDataName, WEATHERMATRIX, modelName);
            //evaluate = string.Format("{0} <- forecast::Arima({1}$Amount,xreg = {2})", fittedDataName, fittingDataName, WEATHERMATRIX, modelName);
            var result = rEngine.Evaluate(evaluate);

            GenericVector resultList       = result.AsList();
            var           fittedValuesList = resultList["residuals"].AsNumeric().ToList();

            var sourceDates   = rEngine.Evaluate("sourceDates <- " + fittingDataName + "$IDDate").AsList();
            var sourceAmounts =
                rEngine.Evaluate("sourceDates <- " + fittingDataName + "$Amount").AsList();
            List <Consuption> retList = new List <Consuption>();

            for (int i = 0; i < fittedValuesList.Count; i++)
            {
                Consuption c = new Consuption();
                c.Amount = (float)fittedValuesList[i] + (float)sourceAmounts.AsNumeric().ElementAt(i);
                c.IDDate = sourceDates.AsInteger().ElementAt(i);
                retList.Add(c);
            }
            return(retList);
            //List<double> returnList = result.AsList();
        }
示例#2
0
        public void parseCSV(string filename)
        {
            using (TextFieldParser parser = new TextFieldParser(filename))
            {
                parser.CommentTokens = new string[] { "#" };
                parser.SetDelimiters(new string[] { "\t" });
                parser.HasFieldsEnclosedInQuotes = true;

                // Skip over header line.
                parser.ReadLine();
                int i = 0;
                while (!parser.EndOfData)
                {
                    string[] fields = parser.ReadFields();



                    Consuption newc = new Consuption()
                    {
                        IDConsuptionPlace   = long.Parse(fields[0]),
                        DayOffset           = int.Parse(fields[1].Substring(0, fields[1].Length - 2)),
                        MeasurementSequence = int.Parse(fields[1].Substring(fields[1].Length - 2)),
                        Amount          = float.Parse(fields[2]),
                        IDDate          = 20120101,
                        MeasurementTime = 1,
                        IDConsuption    = ++i,
                    };


                    log.Debug("New Consuption:" + newc.IDConsuptionPlace.ToString() + "\t" + newc.Amount.ToString() + "\t" + newc.DayOffset.ToString() + "\t" + newc.MeasurementSequence.ToString());
                    db.Consuptions.Add(newc);
                }
                db.SaveChanges();
            }
        }
        //public ActionResult Create([Bind(Include = "Id,PersonID,MaterialID,DateConsuption,Count,Notes,ManagerID")] Consuption consuption)
        public ActionResult Create([Bind(Include = "Id,PersonID,MaterialID,Count,Notes")] Consuption consuption, int Operation)
        {
            if (ModelState.IsValid)
            {
                int cnt = 0;
                try
                {
                    cnt = Convert.ToInt32(consuption.Count);
                    if (Operation == 0)
                    {
                        cnt = (cnt > 0) ? cnt * -1 : cnt;
                    }
                    else
                    {
                        cnt = (cnt > 0) ? cnt : cnt * -1;
                    }
                }
                catch { }
                consuption.Count          = cnt;
                consuption.ManagerID      = GetManagerId();
                consuption.DateConsuption = DateTime.Now;
                db.Consuptions.Add(consuption);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //ViewBag.ManagerID = new SelectList(db.Managers, "Id", "Login", consuption.ManagerID);
            ViewBag.MaterialID = new SelectList(db.Materials, "Id", "Name", consuption.MaterialID);
            ViewBag.PersonID   = new SelectList(db.People.OrderBy(p => p.PersonName), "Id", "PersonName", consuption.PersonID);
            return(View(consuption));
        }
示例#4
0
        public ActionResult DeleteConfirmed(long id)
        {
            Consuption consuption = db.Consuptions.Find(id);

            db.Consuptions.Remove(consuption);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#5
0
 public ActionResult Edit([Bind(Include = "IDConsuption,Amount,DayOffset,MeasurementSequence,MeasurementTime,IDDate,IDConsuptionPlace")] Consuption consuption)
 {
     if (ModelState.IsValid)
     {
         db.Entry(consuption).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IDConsuptionPlace = new SelectList(db.ConsuptionPlaces, "IDConsuptionPlace", "ZipCode", consuption.IDConsuptionPlace);
     return(View(consuption));
 }
 public ActionResult Edit([Bind(Include = "Id,PersonID,MaterialID,DateConsuption,Count,Notes,ManagerID")] Consuption consuption)
 {
     if (ModelState.IsValid)
     {
         db.Entry(consuption).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ManagerID  = new SelectList(db.Managers, "Id", "Login", consuption.ManagerID);
     ViewBag.MaterialID = new SelectList(db.Materials, "Id", "Name", consuption.MaterialID);
     ViewBag.PersonID   = new SelectList(db.People.OrderBy(p => p.PersonName), "Id", "PersonName", consuption.PersonID);
     return(View(consuption));
 }
示例#7
0
        // GET: /Consumption/Details/5
        public ActionResult Details(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Consuption consuption = db.Consuptions.Find(id);

            if (consuption == null)
            {
                return(HttpNotFound());
            }
            return(View(consuption));
        }
示例#8
0
        // GET: /Consumption/Edit/5
        public ActionResult Edit(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Consuption consuption = db.Consuptions.Find(id);

            if (consuption == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IDConsuptionPlace = new SelectList(db.ConsuptionPlaces, "IDConsuptionPlace", "ZipCode", consuption.IDConsuptionPlace);
            return(View(consuption));
        }
        // GET: Consuptions/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Consuption consuption = db.Consuptions.Find(id);

            if (consuption == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ManagerID  = new SelectList(db.Managers, "Id", "Login", consuption.ManagerID);
            ViewBag.MaterialID = new SelectList(db.Materials, "Id", "Name", consuption.MaterialID);
            ViewBag.PersonID   = new SelectList(db.People.OrderBy(p => p.PersonName), "Id", "PersonName", consuption.PersonID);
            return(View(consuption));
        }
示例#10
0
        public void parseCSVBelgium(string filename)
        {
            using (TextFieldParser parser = new TextFieldParser(filename))
            {
                parser.CommentTokens = new string[] { "#" };
                parser.SetDelimiters(new string[] { ";" });
                parser.HasFieldsEnclosedInQuotes = false;

                // Skip over header line.
                parser.ReadLine();
                parser.ReadLine();
                //	int id = 0;
                while (!parser.EndOfData)
                {
                    string[] fields = parser.ReadFields();

                    long dt = long.Parse(fields[2]) * 10000 + long.Parse(fields[1]) * 100 + long.Parse(fields[0]);
                    for (int k = 3; k < fields.Length - 4; k++)
                    {
                        Consuption newc = new Consuption()
                        {
                            IDConsuptionPlace   = 9999,
                            DayOffset           = -1,
                            MeasurementSequence = k - 3,
                            Amount          = float.Parse(fields[k]),
                            IDDate          = dt,
                            MeasurementTime = -1,
                            //IDConsuption = ++,
                            source = 2
                        };


                        log.Debug("New Consuption:" + newc.IDConsuptionPlace.ToString() + "\t" + newc.Amount.ToString() + "\t" + newc.DayOffset.ToString() + "\t" + newc.MeasurementSequence.ToString());
                        db.Consuptions.Add(newc);
                    }
                    db.SaveChanges();
                }
                db.SaveChanges();
            }
        }