public Task <DataResult <DTOCar> > EditAsync(DTOCar carDTO)
        {
            return(Task.Run(() =>
            {
                var carRepository = _unitOfWork.GetRepository <Car>();

                if (carRepository.ExistByCondition(x => x.LicensePlates == carDTO.LicensePlates && x.Id != carDTO.Id))
                {
                    return new DataResult <DTOCar> {
                        Errors = new List <ErrorDescriber> {
                            new ErrorDescriber("Existed Car License Plates")
                        }, Target = carDTO
                    }
                }
                ;

                var carEntity = _mapper.Map <Car>(carDTO);

                carEntity.ModifiedDate = DateTime.Now;

                var updatedCarEntity = carRepository.Update(carEntity);
                _unitOfWork.SaveChanges();

                var updatedCarDTO = _mapper.Map <DTOCar>(updatedCarEntity);

                return new DataResult <DTOCar> {
                    Errors = new List <ErrorDescriber>(), Target = updatedCarDTO
                };
            }));
        }
        public Task <DataResult <DTOCar> > CreateAsync(DTOCar carDTO)
        {
            return(Task.Run(() =>
            {
                var createdCarDTO = new DTOCar();
                var passingCarOwnerId = carDTO.CurrentCarOwnerId;

                if (carRepository.ExistByCondition(x => x.LicensePlates == carDTO.LicensePlates && !string.IsNullOrEmpty(x.LicensePlates)))
                {
                    return new DataResult <DTOCar> {
                        Errors = new List <ErrorDescriber> {
                            new ErrorDescriber("Existed Car License Plates")
                        }, Target = carDTO
                    }
                }
                ;

                var carEntity = _mapper.Map <Car>(carDTO);
                carEntity.CreatedDate = DateTime.Now;

                string garageShortName = garageInfoRepository.GetFirstOrDefault()?.ShortName;
                var identityNumber = carRepository.Identity(x => x.GenerateId) != null ? carRepository.Identity(x => x.GenerateId).GenerateId : 0;

                carEntity.Id = garageShortName + IdentityGenerate.Create(identityNumber, new string[] { "", EntityPrefix.Car.ToDefaultValue() }, NumberUnitType.Large);

                var createdCarEntity = carRepository.Insert(carEntity);
                _unitOfWork.SaveChanges();

                createdCarDTO = _mapper.Map <DTOCar>(createdCarEntity);

                return new DataResult <DTOCar> {
                    Errors = new List <ErrorDescriber>(), Target = createdCarDTO
                };
            }));
        }
Ejemplo n.º 3
0
        private async Task <List <ErrorDescriber> > CreateOrUpdateCar(DTOCar carDTO)
        {
            var errorResult = new List <ErrorDescriber>();

            if (!string.IsNullOrEmpty(carDTO.Id))
            {
                var carResult = await _serviceParameter.CarService.EditAsync(carDTO);

                if (carResult.HasErrors)
                {
                    errorResult = carResult.Errors;
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(carDTO.VinNumber) &&
                    !string.IsNullOrEmpty(carDTO.MachineNumber) &&
                    !string.IsNullOrEmpty(carDTO.LicensePlates))
                {
                    var carResult = await _serviceParameter.CarService.CreateAsync(carDTO);

                    if (carResult.HasErrors)
                    {
                        errorResult = carResult.Errors;
                    }
                }
            }

            return(errorResult);
        }
Ejemplo n.º 4
0
        public DTOCar ToDTO(Car car)
        {
            DTOCar CarDTO = new DTOCar();

            CarDTO.Plaque         = car.Plaque;
            CarDTO.CartypeID      = car.CartypeID;
            CarDTO.CustomerID     = car.CustomerID;
            CarDTO.ID             = car.ID;
            CarDTO.Model_ID       = car.Model_ID;
            CarDTO.CustomerName   = car.Customer.Name;
            CarDTO.PhoneNumber    = car.Customer.Phone;
            CarDTO.PhoneNumber2   = car.Customer.Phone2;
            CarDTO.ModelYear      = car.ModelYear;
            CarDTO.Color          = car.Color;
            CarDTO.EngineCapacity = car.EngineCapacity;
            CarDTO.EngineNumber   = car.EngineNumber;
            CarDTO.FuelType       = car.FuelType;
            CarDTO.KeyCode        = car.KeyCode;
            CarDTO.LicenseOwnder  = car.LicenseOwnder;
            CarDTO.SasiNo         = car.SasiNo;
            CarDTO.BrandID        = car.Model_.BrandID;
            CarDTO.ModelName      = car.Model_.Name;
            CarDTO.BrandName      = car.Model_.Brand.Name;
            CarDTO.CarTypeName    = car.CarType.Name;
            return(CarDTO);
        }
Ejemplo n.º 5
0
        public async Task <IHttpActionResult> Put([FromBody] DTOCar carDTO)
        {
            var result = await _carService.EditAsync(carDTO);

            if (!result.HasErrors)
            {
                var successResult = SuccessResult(result.Target);
                return(Ok(successResult));
            }

            var errorResult = ErrorResult(result.Errors);

            return(Content(HttpStatusCode.InternalServerError, errorResult));
        }
        public Task <DataResult <DTOCar> > GetCarByIdAsync(string carId)
        {
            return(Task.Run(() =>
            {
                var carDTO = new DTOCar();
                var carRepository = _unitOfWork.GetRepository <Car>();

                var car = _unitOfWork.GetRepository <Car>().GetById(carId);
                if (car != null)
                {
                    carDTO = _mapper.Map <DTOCar>(car);
                }
                else
                {
                    var identityNumber = carRepository.Identity(x => x.GenerateId) != null ? carRepository.Identity(x => x.GenerateId).GenerateId : 0;
                    carDTO.Id = IdentityGenerate.Create(identityNumber, new string[] { "", EntityPrefix.Car.ToDefaultValue() }, NumberUnitType.Large);
                }

                return new DataResult <DTOCar> {
                    Errors = new List <ErrorDescriber>(), Target = carDTO
                };
            }));
        }
        public Task <DataResult <DTOCar> > GetSpecifyCarByCustomerIdAsync(string customerId)
        {
            return(Task.Run(() =>
            {
                var carDTO = new DTOCar();
                var carRepository = _unitOfWork.GetRepository <Car>();

                Expression <Func <CustomerExchange, object> >[] includes = { x => x.Car, x => x.Customer };

                var customerExchange = _unitOfWork.GetRepository <CustomerExchange>().Get(x => x.CustomerId == customerId &&
                                                                                          !x.Transferred.HasValue && !x.Transferred.Value &&
                                                                                          string.IsNullOrEmpty(x.TransfereeId) &&
                                                                                          string.IsNullOrEmpty(x.Transferee) &&
                                                                                          !x.TransferDate.HasValue).SingleOrDefault();
                var car = customerExchange.Car;
                if (car != null)
                {
                    carDTO = _mapper.Map <DTOCar>(car);
                }
                return new DataResult <DTOCar> {
                    Errors = new List <ErrorDescriber>(), Target = carDTO
                };
            }));
        }