Exemple #1
0
        //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();
        }
Exemple #2
0
        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 });
            }
        }