示例#1
0
        public ActionResult Contact1(PrimalParam param, string mailname, string telegramname)
        {
            bool[] num = new bool[10];
            num[0] = param.num0;
            num[1] = param.num1;
            num[2] = param.num2;
            num[3] = param.num3;
            if (param.num4)
            {
                for (int i = 4; i < 10; i++)
                {
                    num[i] = true;
                }
            }

            Parameters parameters = new Parameters(num, Convert.ToInt64(param.price1.Replace(" ", "").Replace(" ", "")), Convert.ToInt64(param.price2.Replace(" ", "").Replace(" ", "")), Convert.ToInt32(param.flat1), Convert.ToInt32(param.flat2), Convert.ToInt32(param.max_flat1), Convert.ToInt32(param.max_flat2), Convert.ToDouble(param.metro_distance1.Replace(" ", "").Replace(" ", "")), Convert.ToDouble(param.metro_distance2.Replace(" ", "").Replace(" ", "")), Convert.ToInt32(param.centre_distance1.Replace(" ", "").Replace(" ", "")), Convert.ToInt32(param.centre_distance2.Replace(" ", "").Replace(" ", "")), Convert.ToDouble(param.S1), Convert.ToDouble(param.S2));

            NotificationList.Refresh(parameters, mailname, telegramname);

            return(View());
        }
示例#2
0
        public ActionResult RoomItems(PrimalParam param, int n, string sort, int page)
        {
            int count = Convert.ToInt32(n);
            int skip  = count * (page - 1);

            bool[] num = new bool[10];
            num[0] = param.num0;
            num[1] = param.num1;
            num[2] = param.num2;
            num[3] = param.num3;
            if (param.num4)
            {
                for (int i = 4; i < 10; i++)
                {
                    num[i] = true;
                }
            }

            Parameters         parameters = new Parameters(num, Convert.ToInt64(param.price1.Replace(" ", "").Replace(" ", "")), Convert.ToInt64(param.price2.Replace(" ", "").Replace(" ", "")), Convert.ToInt32(param.flat1), Convert.ToInt32(param.flat2), Convert.ToInt32(param.max_flat1), Convert.ToInt32(param.max_flat2), Convert.ToDouble(param.metro_distance1.Replace(" ", "").Replace(" ", "")), Convert.ToDouble(param.metro_distance2.Replace(" ", "").Replace(" ", "")), Convert.ToInt32(param.centre_distance1.Replace(" ", "").Replace(" ", "")), Convert.ToInt32(param.centre_distance2.Replace(" ", "").Replace(" ", "")), Convert.ToDouble(param.S1), Convert.ToDouble(param.S2));
            ICollection <Room> rooms      = new LinkedList <Room>();

            ViewBag.page = page;
            Polynomial p = new Polynomial(2, 1);

            double[] inp;
            foreach (Room room in repo.List())
            {
                if (parameters.IsEqual(room))
                {
                    int t = 1;
                    if (room.room_type == "Вторичка")
                    {
                        t = 0;
                    }
                    double k = 0;
                    foreach (MetroInfo info in MetroInfos)
                    {
                        if (info.metro == room.metro)
                        {
                            k = info.k;
                            break;
                        }
                    }
                    inp = new double[] { k, room.centre_distance, room.metro_distance, room.S, room.num, t };
                    double[] transformed = p.Transform(inp);


                    room.prediction = Convert.ToInt64((regression1.Transform(transformed)));
                    room.adress     = regression1.Transform(transformed).ToString("#,#", new CultureInfo("ru-RU"));
                    room.room_type  = room.price.ToString("#,#", new CultureInfo("ru-RU"));
                    rooms.Add(room);
                }
            }


            if (sort == "1")
            {
                return(PartialView(rooms.OrderBy(x => x.price).Skip(skip).Take(count)));
            }
            if (sort == "2")
            {
                return(PartialView(rooms.OrderByDescending(x => x.price).Skip(skip).Take(count)));
            }
            if (sort == "3")
            {
                return(PartialView(rooms.OrderByDescending(x => x.dateTime).Skip(skip).Take(count)));
            }


            return(PartialView());
        }