Exemplo n.º 1
0
        public async Task <ReturnCar> AddReturnCarAsync(ReturnCar returnCar)
        {
            ReturnCar result = null;

            try
            {
                using (var applicationContext = new ApplicationContext())
                {
                    result = applicationContext.ReturnCars.Add(returnCar);

                    await applicationContext.SaveChangesAsync();

                    logger.Debug("Новый возврат автомобиля успешно добавлен в БД");
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
            }

            return(result);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> DetailsOrder(AcceptModel model)
        {
            Order order = await _orderDataSource.GetOrderAsync(model.OrderId);

            if (model.Decision == "accept")
            {
                order.OrderStatusId  = 3;
                order.InvoiceMessage = true;
                ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());
                order.ManagerProfileId = user.Id;
            }
            else if (model.Decision == "decline")
            {
                Car car = await _carDataSource.GetCarAsync(order.CarId);

                car.AvailabilityNow = true;
                await _carDataSource.UpdateCarAsync(car);

                order.OrderStatusId  = 2;
                order.InvoiceMessage = false;
                ReasonRejection reason = new ReasonRejection {
                    Id = model.OrderId
                };
                reason.Reason = model.Reason;
                await _reasonRejectionDataSource.AddReasonRejectionAsync(reason);

                ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());
                order.ManagerProfileId = user.Id;
            }
            else if (model.Decision == "paid")
            {
                order.OrderStatusId  = 4;
                order.InvoiceMessage = false;
            }
            else if (model.Decision == "received")
            {
                order.OrderStatusId = 5;
            }
            else if (model.Decision == "return")
            {
                ReturnCar returnCar = new ReturnCar {
                    Id = model.OrderId
                };
                returnCar.ReturnTime = model.ReturnTime;
                await _returnCarDataSource.AddReturnCarAsync(returnCar);

                if (model.Description != null)
                {
                    DamageCar damageCar = new DamageCar {
                        Id = model.OrderId
                    };
                    damageCar.Description    = model.Description;
                    damageCar.CostRepair     = model.CostRepair;
                    damageCar.InvoiceMessage = true;
                    damageCar.UnderRepairNow = true;
                    await _damageCarDataSource.AddDamageCarAsync(damageCar);

                    order.OrderStatusId = 6;
                }
                else
                {
                    order.OrderStatusId = 7;
                    Car car = await _carDataSource.GetCarAsync(order.CarId);

                    car.AvailabilityNow = true;
                    await _carDataSource.UpdateCarAsync(car);
                }
            }
            else if (model.Decision == "debtRepaid")
            {
                order.OrderStatusId = 8;
                order.ReturnCar.DamageCar.InvoiceMessage = false;
            }
            await _orderDataSource.UpdateOrderAsync(order);

            return(RedirectToAction("DetailsOrders", "Order"));
        }