//public IEnumerable<Order> GetOrderForCompany(int companyId) //{ // return RepoGeneric.Find<Order>(c => c.OrderCompany.Contains( OrderProperties.CompanyId == companyId || !c.OrderProperties.CompanyId.HasValue).ToList(); //} public IUnitOfWorkResult AddOrder(Order order) { var repo = RepoGeneric; repo.Add<Order>(order); return repo.UnitOfWork.SaveChanges(); }
public ActionResult Create(EditableOrder model) { DateTime serveCarTime; if (model.PlannedDay == 1) { serveCarTime = DateTime.Parse(string.Format("{0} {1}:{2}", DateTime.Today.ToShortDateString(), model.PlannedHour, model.PlannedMinute)); } else { serveCarTime = DateTime.Parse(string.Format("{0} {1}:{2}", DateTime.Now.AddDays(1).ToShortDateString(), model.PlannedHour, model.PlannedMinute)); } if (serveCarTime <= DateTime.Now) ModelState.AddModelError("PlannedDay", "Niestety nie możemy podać samochód na tą godzinę"); if(model.Companies == null || (model.Companies != null && model.Companies.Count == 0)) ModelState.AddModelError("Companies", "Proszę wybrać chociażby jednego przewoźnika"); if (ModelState.IsValid) { Order newOrder = new Order(); newOrder.ClientId = AccountHelper.currentUser.ID; newOrder.Status = (int)GlobalEnumerator.OrderStatus.Created; newOrder.TimeCreated = DateTime.Now; newOrder.IsPrepaid = false; if (serveCarTime > DateTime.Now.AddMinutes(30)) newOrder.IsPlanned = true; newOrder.Deadline = serveCarTime; Address address = new Address(); address.CityFrom = model.CityFrom; address.AddressFrom = model.AddressFrom; address.AddressFromBlock = model.AddressFromBlock; address.AddressFromPorch = model.AddressFromPorch; if (!string.IsNullOrEmpty(model.AddressTo)) { address.AddressTo = model.AddressTo; address.AddressToBlock = model.AddressToBlock; address.AddressToPorch = model.AddressToPorch; } newOrder.Address = address; newOrder.UserComment = model.Comment; foreach (var comp in model.Companies) { newOrder.OrderCompany.Add(new OrderCompany { CompanyId = comp }); } OrderProperties properties = new OrderProperties(); properties.OrderClass = (int)GlobalEnumerator.OrderClass.Fastest; properties.Priority = (int)GlobalEnumerator.OrderPriority.Normal; properties.Children = model.Childer; properties.Nosmoking = model.NoSmoking; properties.Card = model.Card; properties.Animal = model.Animal; properties.English = model.English; newOrder.OrderProperties = properties; var res = Manager.AddOrder(newOrder); if (!res.IsError) return Json(new { result = "OK", order_id = newOrder.OrderId }); else return Json(new { result = "ERROR", msg = res.ErrorMessage }); } else { var errors = ModelState.Where(c => c.Value.Errors.Any()).Select(c => new { key = c.Key, value = c.Value.Errors[0].ErrorMessage } ); return Json(new { result = "ERROR", errors = errors }); } }