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); } }
public ActionResult DeleteConfirmed(int id) { SecondTable secondTable = db.SecondTables.Find(id); db.SecondTables.Remove(secondTable); db.SaveChanges(); return(RedirectToAction("Index")); }
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)); }
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)); }
// 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)); }
/*Проверка на принадлежность отрезка к фигуре и вычисления его длины*/ 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)); } }
/*Вычисление точки пересечения*/ 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); }