示例#1
0
        public async Task <DamageCar> GetDamageCarAsync(int id)
        {
            DamageCar result = null;

            logger.Debug("Совершено обращение к БД");
            try
            {
                result = await applicationContext.DamageCars.FirstOrDefaultAsync(f => f.Id == id);

                if (result == null)
                {
                    logger.Debug($"Поврежденный автомобиль по Id == {id} не был извлечен из БД");
                }
                else
                {
                    logger.Debug($"Поврежденный втомобиль по Id == {id} был успешно извлечен из БД");
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                logger.Error(ex.StackTrace);
            }

            return(result);
        }
示例#2
0
        public async Task <DamageCar> UpdateDamageCarAsync(DamageCar damageCar)
        {
            DamageCar result = null;

            logger.Debug("Совершено обращение к БД");
            try
            {
                applicationContext.Entry(damageCar).State = EntityState.Modified;

                await applicationContext.SaveChangesAsync();

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

            return(result);
        }
示例#3
0
        public async Task <DamageCar> AddDamageCarAsync(DamageCar damageCar)
        {
            DamageCar result = null;

            logger.Debug("Совершено обращение к БД");
            try
            {
                result = applicationContext.DamageCars.Add(damageCar);

                await applicationContext.SaveChangesAsync();

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

            return(result);
        }
示例#4
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"));
        }