public async Task <IActionResult> Delete(DayWork dayWork) { try { if (await _context.DayWorks.AnyAsync(dw => dw.DayWorkID == dayWork.DayWorkID)) { _context.DayWorks.Remove(dayWork); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); } catch (DbUpdateConcurrencyException /* ex */) { //Log the error (uncomment ex variable name and write a log.) return(RedirectToAction(nameof(Delete), new { id = dayWork.DayWorkID, concurrencyError = true })); } }
public async Task <IActionResult> Create([Bind("DayWorkID,Date,TaskID,Type,Description,Qty,Truck,Scaffolder,NumOfWorkers")] DayWork dayWork, string preUrl) { try { if (ModelState.IsValid) { _context.Add(dayWork); await _context.SaveChangesAsync(); return(RedirectToAction("ViewDayWorks", "Tasks", new { id = dayWork.TaskID, preUrl })); } } catch (DbUpdateException ex) { SqlException innerException = ex.InnerException as SqlException; switch (innerException.Number) { case 2627: //Violation of primary key. Handle Exception ModelState.AddModelError("", "Unable to create. " + "Assign a new Day Work No. and try again." + "if the problem persists, please contact your system administrator."); break; case 2601: ModelState.AddModelError("", "Unable to save creation. " + "Assign a new Day Work No. and try again." + "if the problem persists, please contact your system administrator."); break; default: ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists, " + "please contact your system administrator."); break; } //Log the error (uncomment ex variable name and write a log. Console.Write(ex); } return(View(dayWork)); }
/// <summary> /// Оформление заказа /// </summary> /// <param name="time">Выбранное время</param> /// <param name="notes">Заметки</param> /// <param name="where_eat">Место питания</param> /// <param name="allprice">Итоговая сумма</param> /// <returns>false если время уже занято, иначе true</returns> public bool Post(string time, string notes, string where_eat, int allprice) { Dictionary <string, string> dayName = new Dictionary <string, string>(7); dayName.Add("Monday", "Понедельник"); dayName.Add("Tuesday", "Вторник"); dayName.Add("Wednesday", "Среда"); dayName.Add("Thursday", "Четверг"); dayName.Add("Friday", "Пятница"); dayName.Add("Saturday", "Суббота"); dayName.Add("Sunday", "Воскресенье"); //Название сегодняшнего дня string Today = dayName[DateTime.Now.DayOfWeek.ToString()]; using (var db = new Contexts()) { //Выбираю день с названием сегодняшнего DayWork day = new DayWork(); day = db.DayWork.Where(d => d.Name == Today).FirstOrDefault(); //Выбираю из доступных времен заказов только сегодняшнее и по выбранному времени FreeTime t = new FreeTime(); t = db.FreeTime.Where(c => c.Time == time && c.DayWorkID == day.DayWorkID) .FirstOrDefault(); //Проверяю, не успели ли его занять if (t.cur_amount + 1 <= t.max_amount) { ++t.cur_amount; int id_user; CookieHeaderValue cookie = Request.Headers.GetCookies("user_token").FirstOrDefault(); if (cookie != null) { //Уникальный идентификатор пользователя из куки id_user = Convert.ToInt32(cookie["user_token"].Value); //Заполняю заказ Order order = new Order(); List <Cart> cart = db.Cart.Where(c => c.UserId == id_user).ToList(); order.Notes = notes; order.OrderTime = DateTime.Now; order.ReadyTime = time; order.Status = 0; order.UserId = id_user; order.Sum = allprice; if (where_eat == "true") { order.WhereEat = true; } else { order.WhereEat = false; } db.Orders.Add(order); db.SaveChanges(); foreach (Cart c in cart) { OrderItems orderItems = new OrderItems(); orderItems.Amount = c.Amount; orderItems.MenuItem = db.MenuItems.Where(m => m.Id == c.MenuItemId).FirstOrDefault(); orderItems.Sum = c.Amount * orderItems.MenuItem.Price; orderItems.OrderId = order.OrderID; db.OrderItems.Add(orderItems); } //Чистим корзину foreach (Cart c in cart) { db.Cart.Remove(c); } db.SaveChanges(); //Формирование номера заказа string tmp = DateTime.Now.Year.ToString().Substring(2); if (DateTime.Now.Month.ToString().Length == 1) { tmp += "0" + DateTime.Now.Month.ToString(); } else { tmp += DateTime.Now.Month.ToString(); } if (DateTime.Now.Day.ToString().Length == 1) { tmp += "0" + DateTime.Now.Day.ToString(); } else { tmp += DateTime.Now.Day.ToString(); } if (DateTime.Now.Minute.ToString().Length < 2) { tmp += "0" + DateTime.Now.Minute.ToString(); } else { tmp += DateTime.Now.Minute.ToString(); } if (DateTime.Now.Hour.ToString().Length < 2) { tmp += "0" + DateTime.Now.Hour.ToString(); } else { tmp += DateTime.Now.Hour.ToString(); } if (order.OrderID % 100 < 10) { tmp += "0" + (order.OrderID % 100).ToString(); } else { tmp += (order.OrderID % 100).ToString(); } order.NumberOrder = tmp; db.SaveChanges(); } return(true); } else //Если не успели { return(false); } } }
public async Task <IActionResult> Edit(int?id, string submit, byte[] rowVersion, DayWork obj, string preUrl) { switch (submit) { case "Save As New D/W": { IActionResult newDW = await Create(obj, preUrl); return(newDW); } } if (id == null) { return(NotFound()); } var dayWorkToUpdate = await _context.DayWorks.SingleOrDefaultAsync(dw => dw.DayWorkID == id); if (dayWorkToUpdate == null) { DayWork deletedDayWork = new DayWork(); await TryUpdateModelAsync(deletedDayWork); ModelState.AddModelError(string.Empty, "Unable to save changes. The Day Work you want to update wa deleted by another user."); return(View(deletedDayWork)); } _context.Entry(dayWorkToUpdate).Property("RowVersion").OriginalValue = rowVersion; if (await TryUpdateModelAsync(dayWorkToUpdate, "", dw => dw.Date, dw => dw.Type, dw => dw.Description, dw => dw.Qty, dw => dw.Truck, dw => dw.Scaffolder, dw => dw.NumOfWorkers)) { try { await _context.SaveChangesAsync(); return(Redirect(preUrl)); } catch (DbUpdateConcurrencyException ex) { var exceptionEntry = ex.Entries.Single(); var clientValue = (DayWork)exceptionEntry.Entity; var databaseEntry = exceptionEntry.GetDatabaseValues(); if (databaseEntry == null) { ModelState.AddModelError(string.Empty, "Unable to save changes. This Day work was deleted by another user."); } else { var databaseValues = (DayWork)databaseEntry.ToObject(); if (databaseValues.Date != clientValue.Date) { ModelState.AddModelError("Date", $"Current value: {databaseValues.Date}"); } if (databaseValues.Type != clientValue.Type) { ModelState.AddModelError("Type", $"Current Type: {databaseValues.Type}"); } if (databaseValues.Description != clientValue.Description) { ModelState.AddModelError("Description", $"Current Description: {databaseValues.Description}"); } if (databaseValues.Qty != clientValue.Qty) { ModelState.AddModelError("Qty", $"Current Qty: {databaseValues.Qty}"); } if (databaseValues.Truck != clientValue.Truck) { ModelState.AddModelError("Truck", $"Current Truck: {databaseValues.Truck}"); } if (databaseValues.Scaffolder != clientValue.Scaffolder) { ModelState.AddModelError("Scaffolder", $"Current Scaffolder: {databaseValues.Scaffolder}"); } if (databaseValues.NumOfWorkers != clientValue.NumOfWorkers) { ModelState.AddModelError("NumOfWorkers", $"Current NumOfWorkers: {databaseValues.NumOfWorkers}"); } ModelState.AddModelError("", "The record you attempted to edit " + "was modified by another user after you got the original value."); ModelState.AddModelError("", "The edit operation was canceled and the current valurs in the database " + "have been displayed."); ModelState.AddModelError("", "If you still want to edit this record, click the save button again. " + "Otherwise click the Back to list to the previous page."); dayWorkToUpdate.RowVersion = (byte[])databaseValues.RowVersion; ModelState.Remove("RowVersion"); } } } //ViewData["TaskID"] = new SelectList(_context.Tasks, "TaskID", "TaskID", dayWorkToUpdate.TaskID); PopulateDropDownList(dayWorkToUpdate.TaskID); return(View(dayWorkToUpdate)); }