public void TakeApplicationInWork(ApplicationBindingModel model) { using (var transaction = context.Database.BeginTransaction()) { try { Application element = context.Applications.FirstOrDefault(rec => rec.ApplicationId == model.ApplicationId); if (element == null) { throw new Exception("Элемент не найден"); } if (element.Status != ApplicationStatus.Создана) { throw new Exception("Заявка не в статусе \"Создана\""); } var applications = context.Applications.Include(rec => rec.Resourse).Where(rec => rec.ApplicationId == element.ApplicationId); // списываем foreach (var application in applications) { int countOnSklads = application.Count * element.Count; var skladResourses = context.SkladResourses.Where(rec => rec.ResourseId == application.ResourseId); foreach (var skladResourse in skladResourses) { // компонентов на одном слкаде может не хватать if (skladResourse.Count >= countOnSklads) { skladResourse.Count -= countOnSklads; countOnSklads = 0; context.SaveChanges(); break; } else { countOnSklads -= skladResourse.Count; skladResourse.Count = 0; context.SaveChanges(); } } if (countOnSklads >= 0) { throw new Exception("Не достаточно ресурсов "); } } element.DateImplement = DateTime.Now; element.Status = ApplicationStatus.Отправлена; context.SaveChanges(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } }
public void CreateApplication(ApplicationBindingModel model) { context.Applications.Add(new Application { DateCreate = DateTime.Now, ResourseId = model.ResourseId, Count = model.Count, Sum = model.Summa, Status = ApplicationStatus.Создана }); context.SaveChanges(); }
public void FinishApplication(ApplicationBindingModel model) { Application element = source.Applications.FirstOrDefault(rec => rec.ApplicationId == model.ApplicationId); if (element == null) { throw new Exception("Элемент не найден"); } if (element.Status != ApplicationStatus.Отправлена) { throw new Exception("Заявка не в статусе \"Отправлена\""); } element.Status = ApplicationStatus.Выполнена; }
public void CreateApplication(ApplicationBindingModel model) { int maxId = source.Applications.Count > 0 ? source.Applications.Max(rec => rec.ApplicationId) : 0; source.Applications.Add(new Application { ApplicationId = maxId + 1, ResourseId = model.ResourseId, DateCreate = DateTime.Now, Count = model.Count, Summa = model.Summa, Status = ApplicationStatus.Создана }); }
public void SendApplication(ApplicationBindingModel model) { Application element = source.Applications.FirstOrDefault(rec => rec.ApplicationId == model.ApplicationId); if (element == null) { throw new Exception("Элемент не найден"); } if (element.Status != ApplicationStatus.Создана) { throw new Exception("Заявка не в статусе \"Создана\""); } element.DateImplement = DateTime.Now; element.Status = ApplicationStatus.Отправлена; }
public bool ApplicationFinished(ApplicationBindingModel model) { Application element = context.Applications.FirstOrDefault(rec => rec.ApplicationId == model.ApplicationId); if (element == null) { throw new Exception("Элемент не найден"); } if (element.Status != ApplicationStatus.Отправлена) { throw new Exception("Заявка не в статусе \"Отправлена\""); } //if (код проверки выполнена ли) //{ // return true; //} return(false); }
public void SendApplication(ApplicationBindingModel model) { Application element = context.Applications.FirstOrDefault(rec => rec.ApplicationId == model.ApplicationId); if (element == null) { throw new Exception("Элемент не найден"); } if (element.Status != ApplicationStatus.Создана) { throw new Exception("Заявка не в статусе \"Создана\""); } //код отправка по почте SendEmail(element.Provider.Mail, "Оповещение по заказам", string.Format("Заказ №{0} от {1} передеан в работу")); element.Status = ApplicationStatus.Отправлена; context.SaveChanges(); }
public void FinishApplication(ApplicationBindingModel model) { Application element = context.Applications.FirstOrDefault(rec => rec.ApplicationId == model.ApplicationId); if (element == null) { throw new Exception("Элемент не найден"); } if (element.Status != ApplicationStatus.Отправлена) { throw new Exception("Заявка не в статусе \"Отправлена\""); } if (ApplicationFinished(model) != true) { throw new Exception("Заявка ещё не выполнена"); } element.DateImplement = DateTime.Now; element.Status = ApplicationStatus.Выполнена; context.SaveChanges(); }
// POST api/applications public IHttpActionResult Post(ApplicationBindingModel application) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { using (var db = new ObljubivaSiContext()) { // Insert only if this is the first application with this name // var oldApplications = db.WeddingApplication.Where(x => x.Name == application.Name && x.Type == application.Type).ToArray(); // // if (oldApplications.Length > 0) // { // return BadRequest("Neustrezna prijava."); // } WeddingApplication newApplication = new WeddingApplication(); newApplication.Name = application.Name; newApplication.Remarks = application.Remarks; newApplication.TimeApplied = DateTime.Now; newApplication.Phone = application.Phone; newApplication.Type = application.Type; db.WeddingApplication.Add(newApplication); db.SaveChanges(); } return(Ok()); } catch (Exception e) { return(InternalServerError(e)); } }