Beispiel #1
0
        public override void WriteToStream(IndentStream stream)
        {
            if (!string.IsNullOrEmpty(JoinType))
            {
                stream.Write($"{JoinType.ToUpper()} ");
            }

            if (!string.IsNullOrEmpty(OuterType))
            {
                stream.Write($"{OuterType.ToUpper()} ");
            }

            stream.Write("JOIN ");

            SecondTable.WriteToStream(stream);
            if (AliasName != null)
            {
                stream.Write(" ");
                AliasName.WriteToStream(stream);
            }

            if (WithOptions != null && WithOptions.Count > 0)
            {
                stream.Write(" WITH(");
                WithOptions.ToUpper().WriteToStreamWithComma(stream);
                stream.Write(")");
            }

            if (JoinOnExpr != null)
            {
                stream.Write(" ON ");
                JoinOnExpr.WriteToStream(stream);
            }
        }
Beispiel #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            SecondTable secondTable = db.SecondTables.Find(id);

            db.SecondTables.Remove(secondTable);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #3
0
 public ActionResult Edit([Bind(Include = "Year,CarID,Milage")] SecondTable secondTable)
 {
     if (ModelState.IsValid)
     {
         db.Entry(secondTable).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(secondTable));
 }
Beispiel #4
0
        public ActionResult Create([Bind(Include = "Year,CarID,Milage")] SecondTable secondTable)
        {
            if (ModelState.IsValid)
            {
                db.SecondTables.Add(secondTable);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(secondTable));
        }
Beispiel #5
0
        // GET: SecondTables/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SecondTable secondTable = db.SecondTables.Find(id);

            if (secondTable == null)
            {
                return(HttpNotFound());
            }
            return(View(secondTable));
        }
        public async Task <ActionResult> DivideAsync([FromBody] Number number)
        {
            int result = 0;

            if (ModelState.IsValid)
            {
                _logger.LogInformation((int)CalculateEnum.Divide, "Request to Json", "Method started ");
                try
                {
                    _logger.LogInformation((int)CalculateEnum.Divide, "Request to Soap", "Request sent");
                    result = await _soapClient.DivideAsync(number.FirstNumber, number.SecondNumber);

                    _logger.LogInformation((int)CalculateEnum.Divide, "Response from Soap", "Request success");

                    using (var transaction = await _dbContext.Database.BeginTransactionAsync())
                    {
                        Table table = new Table();
                        _dbContext.Tables.Add(table);
                        await _dbContext.SaveChangesAsync();

                        SecondTable second = new SecondTable
                        {
                            Value   = result.ToString(),
                            TableId = table.Id
                        };
                        await _dbContext.SecondTables.AddAsync(second);

                        await _dbContext.SaveChangesAsync();

                        await transaction.CommitAsync();
                    }
                }
                catch (Exception exp)
                {
                    _logger.LogError((int)CalculateEnum.Divide, "Error message", exp.Message);
                    throw;
                }
                return(Ok(result));
            }
            return(BadRequest(ModelState));
        }
Beispiel #7
0
        /*Проверка на принадлежность отрезка к фигуре и вычисления его длины*/
        static void CheckLine(SecondTable item)
        {
            int check = 0;

            /* 0 - отрезок вне фигуры
             * 1 - отрезок пересекает фигуру
             * 2 - отрезок полностью внутри фигуры */
            double _x = 0, _y = 0;
            bool   startIn = false, endIn = false;

            if (pnpoly(item.Xs, item.Ys))
            {
                startIn = true;
                check++;
            }
            if (pnpoly(item.Xe, item.Ye))
            {
                endIn = true;
                check++;
            }
            if (check == 1)
            {
                var a = GetXY(item);
                _x = a[0];
                _y = a[1];
                a.Clear();
            }
            /*длина отрезка = √((X2-X1)²+(Y2-Y1)²)*/
            if (check == 2)
            {
                Result += Math.Sqrt(Math.Pow(Math.Abs(item.Xe - item.Xs), 2) + Math.Pow(Math.Abs(item.Ye - item.Ys), 2));
            }
            else if (check == 1 && startIn)
            {
                Result += Math.Sqrt(Math.Pow(Math.Abs(_x - item.Xs), 2) + Math.Pow(Math.Abs(_y - item.Ys), 2));
            }
            else if (check == 1 && endIn)
            {
                Result += Math.Sqrt(Math.Pow(Math.Abs(item.Xe - _x), 2) + Math.Pow(Math.Abs(item.Ye - _y), 2));
            }
        }
Beispiel #8
0
        /*Вычисление точки пересечения*/
        static List <double> GetXY(SecondTable item)
        {
            double xi1 = item.Xs, xi2 = item.Xe, yi1 = item.Ys, yi2 = item.Ye;
            double x = 0, y = 0, tmp, k1, k2, b1, b2;

            /* Чтобы вычислить правильные угловые коэффициенты,
             * должно выполняться условие x1 ≤ x2 и x3 ≤ x4.
             * Если нет - то необходимо поменять местами пары координат отрезков.
             */
            if (xi1 > xi2)
            {
                tmp = xi1;
                xi1 = xi2;
                xi2 = tmp;
                tmp = yi1;
                yi1 = yi2;
                yi2 = tmp;
            }
            /*Определяем угловой коэффициент в уравнении прямой*/
            if (yi1 == yi2)
            {
                k1 = 0;
            }
            else
            {
                k1 = (yi2 - yi1) / (xi2 - xi1);
            }
            b1 = yi1 - k1 * xi1;//Вычисление свободного члена в уравнении прямой
            for (int i = 0; i < mainPoints.Count - 1; i++)
            {
                int    j = i + 1 != mainPoints.Count ? i++ : 0;//Вычисление второй вершины грани фигуры
                double xm1 = mainPoints[i].X, xm2 = mainPoints[j].X, ym1 = mainPoints[i].Y, ym2 = mainPoints[j].Y;
                if (xm1 >= xm2)
                {
                    tmp = xm1;
                    xm1 = xm2;
                    xm2 = tmp;
                    tmp = ym1;
                    ym1 = ym2;
                    ym2 = tmp;
                }
                if (ym2 == ym1)
                {
                    k2 = 0;
                }
                else
                {
                    k2 = (ym2 - ym1) / (xm2 - xm1);
                }
                if (k1 == k2)
                {
                    continue;          //Проверка отрезков на параллельность
                }
                b2 = ym1 - k2 * xm1;
                x  = (b2 - b1) / (k1 - k2);
                y  = k1 * x + b1;
                /*Проверка на принадлежность точки к отрезку*/
                if ((x < Math.Max(xi1, xm1)) || (x > Math.Min(xi2, xm2)))
                {
                    continue;
                }
                else if ((xi1 <= xm2 && xm2 <= xi2) || (xi1 <= xm1 && xm1 <= xi2))
                {
                    break;
                }
            }
            List <double> XY = new List <double>();

            XY.Add(x);
            XY.Add(y);
            return(XY);
        }