예제 #1
0
        public void TestGetAllCarsForUserWithId_WithUserIdNull_ShouldReturnZeroCarsForTheUserWithIdNull()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);


            SeedDbWithUsers(context);
            SeedDbWithCars(context);
            SeedCarsToTheFirstUser(context);

            // Act
            var count = carServices.GetAllCarsForUserWithId(null).Count();

            var expectedCount = 0;
            var actualCount   = count;

            // Assert
            Assert.Equal(expected: expectedCount, actual: actualCount);
        }
예제 #2
0
        public void TestGetCarById_WithTestData_ShouldReturnTheCarWithId()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);

            SeedDbWithCars(context);

            var car   = context.Cars.FirstOrDefault();
            var carId = car.Id;

            // Act
            var expetedCar = car;
            var actualCar  = carServices.GetCarById(carId);

            // Assert
            Assert.True(expetedCar.Id == actualCar.Id &&
                        expetedCar.Brand == actualCar.Brand &&
                        expetedCar.Model == actualCar.Model &&
                        expetedCar.Number == actualCar.Number,
                        "The Method: GetCarById() does not work correctly!");
        }
예제 #3
0
        public void TestGetAllCarsForUserWithId_WithTestData_ShouldReturnAllCarsForTheUserWithId()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);


            SeedDbWithUsers(context);
            SeedDbWithCars(context);
            SeedCarsToTheFirstUser(context);

            var firstUser = context.Users.FirstOrDefault();

            // Act
            var count = carServices.GetAllCarsForUserWithId(firstUser.Id).Count();

            var expectedCount = 2;
            var actualCount   = count;

            // Assert
            Assert.Equal(expected: expectedCount, actual: actualCount);
        }
예제 #4
0
        public async Task TestAddCarAsync_WithTestData_ShouldAddCarToDb()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);

            var car = new Car()
            {
                Brand    = "BMW",
                Model    = "X6",
                Number   = "PB1234K",
                YearFrom = DateTime.Now
            };
            var carServiceModel = mapper.Map <CarServiceModel>(car);

            // Act
            await carServices.AddCarAsync(carServiceModel);

            var expectedCount = 1;
            var actualCount   = context.Cars.Count();

            // Assert
            Assert.Equal(expected: expectedCount, actual: actualCount);
        }
예제 #5
0
 public FormRaporlama()
 {
     InitializeComponent();
     reportServices = new ReportServices();
     modelServices  = new ModelServices();
     carServices    = new CarServices();
 }
예제 #6
0
        public async Task CartypebrickGetter()
        {
            CarServices serv    = new CarServices();
            var         ResBack = await serv.GetCarsbricktype();

            CarTypesBrick = ResBack;
        }
예제 #7
0
        public async Task TestEditCarDataAsync_WithTestData_ShouldEditTheCarData()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            SeedDbWithCars(context);

            var carServices     = new CarServices(context, mapper);
            var car             = context.Cars.FirstOrDefault();
            var carServiceModel = mapper.Map <CarServiceModel>(car);

            carServiceModel.Brand = "Tesla";
            carServiceModel.Model = "Model S";

            // Act
            await carServices.EditCarDataAsync(carServiceModel);

            var carFormDb = context.Cars.FirstOrDefault(c => c.Id == car.Id);

            var expectedBrand = "Tesla";
            var expectedModel = "Model S";

            var actualBrand = carFormDb.Brand;
            var actualModel = carFormDb.Model;

            // Assert
            Assert.True(expectedBrand == actualBrand &&
                        expectedModel == actualModel,
                        "The method EditCarDataAsnc does not work!");
        }
예제 #8
0
        private async Task GetCars()
        {
            if (IsBusy)
            {
                return;
            }

            Exception error = null;

            try
            {
                IsBusy = true;

                var carsService = new CarServices();
                var items       = await carsService.GetCarsAsync(string.Format("{0}{1}", ServerConstants.Endpoint, ServerConstants.METHOD_GET_METHOD));

                _Cars.Clear();
                foreach (var item in items)
                {
                    _Cars.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error: " + ex);
                error = ex;
            }
            finally
            {
                IsBusy = false;
            }
        }
예제 #9
0
 public HomeController(AccountServices service, UserManager <MyIdentityUser> userManager,
                       SignInManager <MyIdentityUser> signInManager, CarServices carServices, IConfiguration config,
                       BiluthyrningABContext context)
 {
     this.service       = service;
     this.userManager   = userManager;
     this.signInManager = signInManager;
     this.carServices   = carServices;
     Configuration      = config;
     this.context       = context;
 }
예제 #10
0
        public static void Initialize(string userId, IUserService userService, CarPoolingEfContext context)
        {
            CurrentUserId = userId;

            UserService = userService;

            BookingService = new BookingService(context);

            CarServices = new CarServices(context);

            RideServices = new RideServices(context, BookingService);
        }
예제 #11
0
        public async Task BrickCarGetter()
        {
            CarServices serv    = new CarServices();
            var         ResBack = await serv.GetAllBrickCars();

            BrickCars = new ObservableCollection <Car>(ResBack);
            foreach (var item in BrickCars)
            {
                item.Position = new Position(Convert.ToDouble(item.Member.lat),
                                             Convert.ToDouble(item.Member.lng));
                if (item.cartypename == null)
                {
                    switch (item.Member.cartype)
                    {
                    case "1":
                        item.cartypename = "لانسر";
                        break;

                    case "2":
                        item.cartypename = "تيوتا";
                        break;

                    case "3":
                        item.cartypename = "نيسان";
                        break;

                    case "4":
                        item.cartypename = "هيونداي";
                        break;

                    case "17":
                        item.cartypename = "أودي";
                        break;
                    }
                }
                item.Title       = item.Member.name;
                item.ShowCallout = true;

                if (item.Order != null)
                {
                    item.Image = "privatecarred.png";
                }
                else
                {
                    item.Image = "privatecargreen.png";
                }
            }
        }
예제 #12
0
        public void TestGetAllCars_WithoutTestData_ShouldGetAllCars()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);

            // Act
            var actualCount   = carServices.GetAllCars().Count;
            var expectedCount = 0;

            // Assert
            Assert.Equal(expectedCount, actualCount);
        }
예제 #13
0
        public void CorrectRentalsPilot()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new ApplicationDbContext(options.Options);
            var money      = new MoneyAccountServices(repository);
            var pilot      = new RallyPilotsServices(repository);
            var navigator  = new RallyNavigatorsServices(repository);
            var car        = new CarServices(repository, pilot, navigator, money);
            var team       = new TeamServices(repository, car, money, pilot, navigator);

            money.CreateMoneyAccount("Pesho");
            team.CreateTeamAsync("Vidin", "Pesho").GetAwaiter().GetResult();

            var t  = team.FindUserAsync("Pesho").Result;
            var id = t.RallyPilotId;
        }
예제 #14
0
        public void TestGetCarById_WithoutTestData_ShouldReturnNull()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);

            var carId = 1;

            // Act
            var actualCar = carServices.GetCarById(carId);

            // Assert
            Assert.True(null == actualCar,
                        "The Method: GetCarById() does not work correctly!");
        }
예제 #15
0
        public async Task TestAddCarAsync_WithCarServiceModelNull_ShouldNotAddCarToDb()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);


            // Act
            await carServices.AddCarAsync(null);

            var expectedCount = 0;
            var actualCount   = context.Cars.Count();

            // Assert
            Assert.Equal(expected: expectedCount, actual: actualCount);
        }
예제 #16
0
        public void CorrectCreateParts()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new ApplicationDbContext(options.Options);
            var service    = new CreateServices(repository);
            var car        = new CarServices(repository);

            var input = new PartsViewModels
            {
                Type     = PartsCarsType.Aerodynamics,
                Name     = "Aerodynamics",
                Price    = 1000,
                Strength = 100,
                Speed    = 10,
            };

            var result = service.CreateParts(input);

            Assert.Equal("Часта е успешно създадено.", result);
        }
예제 #17
0
        public void CorrectGetNewAerodynamics()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repository = new ApplicationDbContext(options.Options);
            var cars       = new CarServices(repository);

            var parts = new PartsCars
            {
                Id        = 1,
                Name      = "Aerodynamics",
                Price     = 100,
                Speed     = 40,
                Strength  = 50,
                IsDeleted = false,
            };

            var car = new Cars
            {
                EngineId       = 1,
                GearboxId      = 1,
                TeamId         = 2,
                AerodynamicsId = 1,
                BrakesId       = 1,
                ModelCarId     = 1,
                MountingId     = 1,
                TurboId        = null,
                Id             = 1,
            };

            cars.GetNewAerodynamics(parts, car);

            var newCar = cars.GetCar(1);

            var resultSpeed = newCar.Aerodynamics.Speed;

            Assert.Equal(40, resultSpeed);
        }
예제 #18
0
            public void AddTwoCarsWithDuplicateName_ShouldNotBeAdded()
            {
                var user = new User {
                    DisplayName = "User 1"
                };
                var mockUser = new Mock <IUserService>();

                mockUser.Setup(u => u.CurrentUser).Returns(user);

                var mock = new Mock <IRepository <Car> >();

                var collection = new HashSet <Car>();

                mock.Setup(repo => repo.Add(It.IsAny <Car>())).Callback <Car>((c) => {
                    collection.Add(c);
                });

                mock.Setup(repo => repo.Query(It.IsAny <Func <Car, bool> >())).Returns(collection.AsQueryable());

                var s = new CarServices(mock.Object, mockUser.Object);

                var c1 = new Car("Jazz")
                {
                    Owner = user
                };
                var c2 = new Car("Jazz")
                {
                    Owner = user
                };

                s.Add(c1);
                var ex = Assert.Throws <Exception>(() => {
                    s.Add(c2);
                });

                ex.Message.ShouldEqual("This car name has been used already.");//False because mock wasn't keep value in HashSet
                mock.Verify(r => r.Add(c1), Times.Once);
            }
예제 #19
0
        public async Task TestDeleteCarAsync_WithTestData_ShouldDeleteCarrFromDb()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            SeedDbWithCars(context);

            var carServices = new CarServices(context, mapper);
            var carId       = context.Cars.FirstOrDefault().Id;

            // Act
            await carServices.DeleteCarAsync(carId);

            var expectedCount = 1;
            var actualCount   = context.Cars.Count();

            // Assert
            Assert.Equal(expected: expectedCount, actual: actualCount);
        }
예제 #20
0
        public void TestIsThereSuchCarWithNumber_WithTestData_ShouldReturnIsThereSuchCarWithNumberFalse()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);

            SeedDbWithCars(context);

            var testNumber = "PB1234K1";

            var isThreSuchCarWithNumber = carServices.IsThereSuchCarWithNumber(testNumber);

            var expectedResult = false;
            var actualResut    = isThreSuchCarWithNumber;

            Assert.True(expectedResult == actualResut,
                        "The method: IsThereSuchCarWithNumber(string number)(False) does not work correctly!");
        }
예제 #21
0
            public void AddFirstCar_Success()
            {
                var user = new User {
                    DisplayName = "User 1"
                };
                var mockUser = new Mock <IUserService>();

                mockUser.Setup(u => u.CurrentUser).Returns(user);

                var mock = new Mock <IRepository <Car> >();

                var s = new CarServices(mock.Object, mockUser.Object);

                //mock.Setup(m => m.Add(It.IsAny<Car>()));

                var c = new Car("Toyota");

                c.Owner = user;
                s.Add(c);

                //mock.Verify(r => r.Add(It.IsAny<Car>()), Times.Once);//Check repository was called only 1 time.
                mock.Verify(r => r.Add(c), Times.Once);//Check repository was called only 1 time with this parameter.
            }
예제 #22
0
        public void TestGetAllCarsForUserWithId_WithoutCarsForThisUser_ShouldReturnZeroCarsForTheUserWithIdNull()
        {
            // Arrange
            var contextFactory = new ApplicationDbContextFactory();
            var context        = contextFactory.CreateApplicationDbContext();

            var mapperFactory = new AutoMapperFactory();
            var mapper        = mapperFactory.CreateMapper();

            var carServices = new CarServices(context, mapper);


            SeedDbWithUsers(context);
            string userId = context.Users.FirstOrDefault().Id;

            // Act
            var count = carServices.GetAllCarsForUserWithId(userId).Count();

            var expectedCount = 0;
            var actualCount   = count;

            // Assert
            Assert.Equal(expected: expectedCount, actual: actualCount);
        }
예제 #23
0
 public FormAraba()
 {
     InitializeComponent();
     carServices = new CarServices();
 }
예제 #24
0
 public CarsController(CarServices carService)
 {
     this.carService = carService;
 }
예제 #25
0
        public async Task BrickCarGetter()
        {
            CarServices serv    = new CarServices();
            var         ResBack = await serv.GetAllBrickCars();

            BrickCars = new ObservableCollection <Car>(ResBack);
            foreach (var item in BrickCars)
            {
                item.Position = new Position(Convert.ToDouble(item.Member.lat),
                                             Convert.ToDouble(item.Member.lng));
                if (item.cartypename == null)
                {
                    if (item.Member.cartype == "5")
                    {
                        item.cartypename = "لانسر";
                    }
                    else if (item.Member.cartype == "6")
                    {
                        item.cartypename = "تيوتا";
                    }
                    else if (item.Member.cartype == "7")
                    {
                        item.cartypename = "نيسان";
                    }
                    else if (item.Member.cartype == "8")
                    {
                        item.cartypename = "هيونداي";
                    }
                    else if (item.Member.cartype == "0")
                    {
                        item.cartypename = "أودي";
                    }
                }
                item.Title       = item.Member.name;
                item.ShowCallout = true;
                if (item.Order != null)
                {
                    if (item.Order.weight != null)
                    {
                        if (item.Order.weight >= (0.9 * int.Parse(item.Member.load)) && item.cartypename == "لانسر")
                        {
                            item.Image = "lancerred.png";
                        }
                        else if (item.Order.weight >= (0.25 * int.Parse(item.Member.load)) &&
                                 item.Order.weight < (0.9 * int.Parse(item.Member.load)) && item.cartypename == "لانسر")
                        {
                            item.Image = "lancerblue.png";
                        }
                        else if (item.Order.weight >= (0.9 * int.Parse(item.Member.load)) && item.cartypename == "تيوتا")
                        {
                            item.Image = "toyotared.png";
                        }
                        else if (item.Order.weight >= (0.25 * int.Parse(item.Member.load)) &&
                                 item.Order.weight < (0.9 * int.Parse(item.Member.load)) && item.cartypename == "تيوتا")
                        {
                            item.Image = "toyotablue.png";
                        }
                        else if (item.Order.weight >= (0.9 * int.Parse(item.Member.load)) && item.cartypename == "نيسان")
                        {
                            item.Image = "nissanred.png";
                        }
                        else if (item.Order.weight >= (0.25 * int.Parse(item.Member.load)) &&
                                 item.Order.weight < 0.9 * int.Parse(item.Member.load) && item.cartypename == "نيسان")
                        {
                            item.Image = "nissanblue.png";
                        }
                        else if (item.Order.weight >= 0.9 * double.Parse(item.Member.load) && item.cartypename == "هيونداي")
                        {
                            item.Image = "hyundaired.png";
                        }
                        else if (item.Order.weight >= 0.25 * double.Parse(item.Member.load) &&
                                 item.Order.weight < 0.9 * double.Parse(item.Member.load) && item.cartypename == "هيونداي")
                        {
                            item.Image = "hyundaiblue.png";
                        }
                        else if (item.Order.weight >= 0.9 * double.Parse(item.Member.load) && item.cartypename == "أودي")
                        {
                            item.Image = "hyundaired.png";
                        }
                        else if (item.Order.weight >= 0.25 * double.Parse(item.Member.load) &&
                                 item.Order.weight < 0.9 * double.Parse(item.Member.load) && item.cartypename == "أودي")
                        {
                            item.Image = "hyundaiblue.png";
                        }
                        else
                        {
                            if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "لانسر")
                            {
                                item.Image = "lancergreen.png";
                            }
                            else if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "تيوتا")
                            {
                                item.Image = "toyotagreen.png";
                            }
                            else if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "نيسان")
                            {
                                item.Image = "nissangreen.png";
                            }
                            else if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "هيونداي")
                            {
                                item.Image = "hyundaigreen.png";
                            }
                            else
                            {
                                item.Image = "hyundaigreen.png";
                            }
                        }
                    }
                    else
                    {
                        if (item.cartypename == "لانسر")
                        {
                            item.Image = "lancergreen.png";
                        }
                        else if (item.cartypename == "تيوتا")
                        {
                            item.Image = "toyotagreen.png";
                        }
                        else if (item.cartypename == "نيسان")
                        {
                            item.Image = "nissangreen.png";
                        }
                        else if (item.cartypename == "هيونداي")
                        {
                            item.Image = "hyundaigreen.png";
                        }
                        else if (item.cartypename == "أودي")
                        {
                            item.Image = "hyundaigreen.png";
                        }
                    }
                }
                else
                {
                    if (item.cartypename == "لانسر")
                    {
                        item.Image = "lancergreen.png";
                    }
                    else if (item.cartypename == "تيوتا")
                    {
                        item.Image = "toyotagreen.png";
                    }
                    else if (item.cartypename == "نيسان")
                    {
                        item.Image = "nissangreen.png";
                    }
                    else if (item.cartypename == "هيونداي")
                    {
                        item.Image = "hyundaigreen.png";
                    }
                    else if (item.cartypename == "أودي")
                    {
                        item.Image = "hyundaigreen.png";
                    }
                }
            }
        }
예제 #26
0
 public CarController()
 {
     carService = new CarServices();
 }
예제 #27
0
 public CarController(CarServices repository, DataContext context)
 {
     _repository = repository;
     _context    = context;
 }
        protected void PrepareDefaultSettingModel(DefaultSettingViewModel model, Garage garage, IQueryable <Garage_LeaderSetting> garageDefaultSettingEitity,
                                                  IList <Garage_CarDaySetting> garageCarDaySettingEntity, bool loadDefaultValue = true)
        {
            model.GarageId         = garage.GarageId;
            model.GarageName       = garage.Garage_Name;
            model.PrepareModelData = true;
            // Teams
            var TeamList = db.GarageTeams.Where(t => t.GarageId == model.GarageId).ToList();

            if (TeamList.Count <= 0)
            {
                model.PrepareModelData = false;
                ErrorNotification("Team not available.");
            }
            foreach (var team in TeamList)
            {
                model.AvailableTeams.Add(new SelectListItem()
                {
                    Text  = team.Title,
                    Value = team.Id.ToString()
                });
            }

            //// Crew Leader
            var LeadersList = (from u in db.AspNetUsers
                               join w in db.WorkerGarages
                               on u.Id equals w.CrewLeaderId
                               where w.IsLeader == true && u.AspNetRoles.Any(r => r.Name == "Crew Leader") &&
                               w.GarageID == model.GarageId
                               select u).ToList();

            if (LeadersList.Count <= 0)
            {
                model.PrepareModelData = false;
                ErrorNotification("Crew Leader not available.");
            }

            foreach (var leader in LeadersList)
            {
                model.AvailableLeaders.Add(new SelectListItem()
                {
                    Text  = leader.FirstName + " " + leader.LastName + "<br>" + leader.Email,
                    Value = leader.Id
                });
            }

            // Crew Member

            // var memberList = db.AspNetUsers.Where(u => u.AspNetRoles.Any(r => r.Name == "Crew Member")).ToList();
            var memberList = (from u in db.AspNetUsers
                              join w in db.WorkerGarages
                              on u.Id equals w.CrewLeaderId
                              where w.IsLeader == false && u.AspNetRoles.Any(r => r.Name == "Crew Member") &&
                              w.GarageID == model.GarageId
                              select u).ToList();

            if (memberList.Count <= 0)
            {
                model.PrepareModelData = false;
                ErrorNotification("Crew Member not available.");
            }

            foreach (var member in memberList)
            {
                model.AvailableMembers.Add(new SelectListItem()
                {
                    Text  = member.FirstName + " " + member.LastName + "<br>" + member.Email,
                    Value = member.Id
                });
            }

            // Garage Cars


            var garageList = db.Garages.Where(a => a.ServiceDays == model.ServiceDay).ToList();
            var carList    = (
                from c in db.CarUsers
                join
                up in db.UserPackages
                on c.CarId equals up.CarId
                join p in db.Packages
                on up.PackageId equals p.PackageId
                where c.GarageId == model.GarageId && up.PaymentRecieved == true && up.IsActive == true && up.ServiceDay == model.ServiceDay &&
                up.NextServiceDate == model.ServiceDate
                select new { CarId = c.CarId, DisplayName = c.DisplayName, LicenseNumber = c.LicenseNumber, c.Make, c.Color }).ToList();

            if (carList.Count <= 0)
            {
                model.PrepareModelData = false;
                ErrorNotification("Cars not available.");
            }


            string Description = string.Empty;

            foreach (var car in carList)
            {
                Description = string.Empty;

                Description = car.DisplayName;

                if (!string.IsNullOrEmpty(Description))
                {
                    Description += "<br>" + car.LicenseNumber;
                }

                if (!string.IsNullOrEmpty(Description))
                {
                    Description += "<br>" + car.Make;
                }

                if (!string.IsNullOrEmpty(Description))
                {
                    Description += "<br>" + car.Color;
                }

                model.AvailableCars.Add(new SelectListItem()
                {
                    Text  = Description,
                    Value = car.CarId.ToString()
                });
            }


            if (garageCarDaySettingEntity.Count > 0)
            {
                var garageDefaultSettingByDay = garageCarDaySettingEntity.Where(q => q.ServiceDay == model.ServiceDay).ToList();

                if (garageDefaultSettingByDay.Count > 0)
                {
                    // load existing leaders
                    foreach (var leader in LeadersList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Leader && f.EntityTypeValue == leader.Id && f.GarageTeamId == team.Id) != null;
                            if (!model.SelectedLeaders.ContainsKey(leader.Id))
                            {
                                model.SelectedLeaders[leader.Id] = new Dictionary <int, bool>();
                            }
                            model.SelectedLeaders[leader.Id][team.Id] = selected;
                        }
                    }

                    // load existing member
                    foreach (var leader in memberList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Member && f.EntityTypeValue == leader.Id && f.GarageTeamId == team.Id) != null;
                            if (!model.SelectedMembers.ContainsKey(leader.Id))
                            {
                                model.SelectedMembers[leader.Id] = new Dictionary <int, bool>();
                            }
                            model.SelectedMembers[leader.Id][team.Id] = selected;
                        }
                    }


                    // load existing cars
                    foreach (var car in carList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Car && f.EntityTypeValue == car.CarId.ToString() && f.GarageTeamId == team.Id) != null;
                            if (!model.SelectedCars.ContainsKey(car.CarId))
                            {
                                model.SelectedCars[car.CarId] = new Dictionary <int, bool>();
                            }
                            model.SelectedCars[car.CarId][team.Id] = selected;

                            if (selected)
                            {
                                var garageDefaultSettingByDayCarPaid = garageDefaultSettingByDay.Where(f => f.EntityTypeKey == (int)EntityTypeKey.Car && f.EntityTypeValue == car.CarId.ToString() && f.GarageTeamId == team.Id).SingleOrDefault();

                                var userpackageDetail = db.UserPackages.Where(u => u.CarId == car.CarId && u.IsActive == true).SingleOrDefault();
                                if (userpackageDetail != null)
                                {
                                    string PaymentStatus           = string.Empty;
                                    var    paypalAutoPaymentDetail = db.PaypalAutoPayments.Where(p => p.UserPackageID == userpackageDetail.Id && p.ServiceDate == model.ServiceDate).SingleOrDefault();

                                    if (paypalAutoPaymentDetail == null)
                                    {
                                        PaymentStatus = "UnPaid";
                                    }
                                    else
                                    {
                                        PaymentStatus = paypalAutoPaymentDetail.IsPaid ? "Paid" : "UnPaid";
                                    }

                                    var CarDetail = model.AvailableCars.Where(c => c.Value == garageDefaultSettingByDayCarPaid.EntityTypeValue).SingleOrDefault();
                                    CarDetail.Text += "<br/> <b>Payment Status:</b> " + PaymentStatus;
                                }
                            }
                        }
                    }

                    /// Load Car Payment Detail
                    ///
                    model.CarPayments = new List <CarServicesPayment>();
                    foreach (var car in carList)
                    {
                        CarServicesPayment carPayment = new CarServicesPayment();
                        carPayment.CarId         = car.CarId;
                        carPayment.DisplayName   = car.DisplayName;
                        carPayment.LicenseNumber = car.LicenseNumber;
                        carPayment.Make          = car.Make;
                        carPayment.Color         = car.Color;

                        var garageDefaultSettingByDayCarPaid = garageDefaultSettingByDay.Where(f => f.EntityTypeKey == (int)EntityTypeKey.Car && f.EntityTypeValue == car.CarId.ToString()).SingleOrDefault();
                        carPayment.ServiceDayId = garageDefaultSettingByDayCarPaid.Id;

                        var userpackageDetail = db.UserPackages.Where(u => u.CarId == car.CarId && u.IsActive == true).SingleOrDefault();
                        if (userpackageDetail != null)
                        {
                            string PaymentStatus           = string.Empty;
                            var    paypalAutoPaymentDetail = db.PaypalAutoPayments.Where(p => p.UserPackageID == userpackageDetail.Id && p.ServiceDate == model.ServiceDate).FirstOrDefault();

                            if (paypalAutoPaymentDetail == null)
                            {
                                carPayment.IsPaid = false;
                            }
                            else
                            {
                                carPayment.IsPaid = paypalAutoPaymentDetail.IsPaid ? true : false;
                            }
                        }


                        model.CarPayments.Add(carPayment);
                    }

                    /// Load Car With Services
                    ///

                    model.CarServicesList = new List <CarServices>();
                    foreach (var car in carList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Car && f.EntityTypeValue == car.CarId.ToString() && f.GarageTeamId == team.Id) != null;
                            if (selected)
                            {
                                CarServices carService = new CarServices();
                                carService.CarDisplayName = car.DisplayName;
                                carService.CarId          = car.CarId;
                                carService.TeamId         = team.Id;


                                var pCarId = new SqlParameter();
                                pCarId.ParameterName = "CarId";
                                pCarId.Value         = car.CarId;
                                pCarId.DbType        = DbType.Int32;

                                var servicesList = db.Database.SqlQuery <GreenPro.Data.Service>(
                                    "EXEC dbo.GetServicesByCarId @CarId",
                                    pCarId
                                    ).ToList();

                                if (servicesList.Count > 0)
                                {
                                    carService.SelectServices = new List <CarServices.SelectService>();
                                    foreach (var service in servicesList)
                                    {
                                        CarServices.SelectService seviceModel = new CarServices.SelectService();
                                        seviceModel.ServiceName = service.Service_Name;
                                        carService.SelectServices.Add(seviceModel);
                                    }
                                }

                                model.CarServicesList.Add(carService);
                            }
                        }
                    }
                }
            }
            else if (garageDefaultSettingEitity != null)
            {
                var garageDefaultSettingByDay = garageDefaultSettingEitity.Where(q => q.ServiceDay == model.ServiceDay).ToList();

                if (garageDefaultSettingByDay.Count > 0)
                {
                    // load existing leaders
                    foreach (var leader in LeadersList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Leader && f.EntityTypeValue == leader.Id && f.GarageTeamId == team.Id) != null;
                            if (!model.SelectedLeaders.ContainsKey(leader.Id))
                            {
                                model.SelectedLeaders[leader.Id] = new Dictionary <int, bool>();
                            }
                            model.SelectedLeaders[leader.Id][team.Id] = selected;
                        }
                    }

                    // load existing member
                    foreach (var leader in memberList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Member && f.EntityTypeValue == leader.Id && f.GarageTeamId == team.Id) != null;
                            if (!model.SelectedMembers.ContainsKey(leader.Id))
                            {
                                model.SelectedMembers[leader.Id] = new Dictionary <int, bool>();
                            }
                            model.SelectedMembers[leader.Id][team.Id] = selected;
                        }
                    }


                    // load existing cars
                    foreach (var car in carList)
                    {
                        foreach (var team in TeamList)
                        {
                            bool selected = garageDefaultSettingByDay.Find(f => f.EntityTypeKey == (int)EntityTypeKey.Car && f.EntityTypeValue == car.CarId.ToString() && f.GarageTeamId == team.Id) != null;
                            if (!model.SelectedCars.ContainsKey(car.CarId))
                            {
                                model.SelectedCars[car.CarId] = new Dictionary <int, bool>();
                            }
                            model.SelectedCars[car.CarId][team.Id] = selected;
                        }
                    }
                }
            }
        }
예제 #29
0
        public async Task ShippingCarGetter()
        {
            CarServices serv    = new CarServices();
            var         ResBack = await serv.GetAllShippingCars();

            ShippingCars = new ObservableCollection <Car>(ResBack);
            foreach (var item in ShippingCars)
            {
                item.Position = new Position(Convert.ToDouble(item.Member.lat),
                                             Convert.ToDouble(item.Member.lng));
                if (item.cartypename == null)
                {
                    switch (item.Member.cartype)
                    {
                    case "1":
                        item.cartypename = "صغيرة";
                        break;

                    case "2":
                        item.cartypename = "دينا";
                        break;

                    case "3":
                        item.cartypename = "تريلة";
                        break;

                    case "4":
                        item.cartypename = "سطحة";
                        break;
                    }
                }
                item.Title       = item.Member.name;
                item.ShowCallout = true;
                if (item.Order != null)
                {
                    if (item.Order.weight != null)
                    {
                        if (Convert.ToDouble(item.Order.weight) > (0.9 * Convert.ToDouble(item.Member.load)) && item.cartypename == "دينا")
                        {
                            item.carmodalname = "dinared";
                        }
                        else if (item.Order.weight >= 0.25 * int.Parse(item.Member.load) &&
                                 item.Order.weight < 0.9 * int.Parse(item.Member.load) && item.cartypename == "دينا")
                        {
                            item.Image = "dinablue.png";
                        }
                        else if (item.Order.weight >= 0.9 * int.Parse(item.Member.load) && item.cartypename == "صغيرة")
                        {
                            item.Image = "smallred.png";
                        }
                        else if (item.Order.weight >= (0.25 * int.Parse(item.Member.load)) &&
                                 item.Order.weight < 0.9 * int.Parse(item.Member.load) && item.cartypename == "صغيرة")
                        {
                            item.Image = "smallblue.png";
                        }
                        else if (item.Order.weight >= 0.9 * int.Parse(item.Member.load) && item.cartypename == "تريلة")
                        {
                            item.Image = "trilared.png";
                        }
                        else if (item.Order.weight >= (0.25 * int.Parse(item.Member.load)) &&
                                 item.Order.weight < (0.9 * int.Parse(item.Member.load)) && item.cartypename == "تريلة")
                        {
                            item.Image = "trilblue.png";
                        }
                        else if (item.Order.weight >= (0.9 * int.Parse(item.Member.load)) && item.cartypename == "سطحة")
                        {
                            item.Image = "sathared.png";
                        }
                        else if (item.Order.weight >= (0.25 * int.Parse(item.Member.load)) &&
                                 item.Order.weight < (0.9 * int.Parse(item.Member.load)) && item.cartypename == "سطحة")
                        {
                            item.Image = "sathablue.png";
                        }
                        else
                        {
                            if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "دينا")
                            {
                                item.Image = "dinagreen.png";
                            }
                            else if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "صغيرة")
                            {
                                item.Image = "smallgreen.png";
                            }
                            else if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "تريلة")
                            {
                                item.Image = "trilagreen.png";
                            }
                            else if (item.Order.weight < 0.25 * double.Parse(item.Member.load) && item.cartypename == "سطحة")
                            {
                                item.Image = "sathagreen.png";
                            }
                        }
                    }
                    else
                    {
                        if (item.cartypename == "دينا")
                        {
                            item.Image = "dinagreen.png";
                        }
                        else if (item.cartypename == "صغيرة")
                        {
                            item.Image = "smallgreen.png";
                        }
                        else if (item.cartypename == "تريلة")
                        {
                            item.Image = "trilagreen.png";
                        }
                        else if (item.cartypename == "سطحة")
                        {
                            item.Image = "sathagreen.png";
                        }
                    }
                }
                else
                {
                    if (item.cartypename == "دينا")
                    {
                        item.Image = "dinagreen.png";
                    }
                    else if (item.cartypename == "صغيرة")
                    {
                        item.Image = "smallgreen.png";
                    }
                    else if (item.cartypename == "تريلة")
                    {
                        item.Image = "trilagreen.png";
                    }
                    else if (item.cartypename == "سطحة")
                    {
                        item.Image = "sathagreen.png";
                    }
                }
            }
        }
예제 #30
0
 public CarsController(CarServices service, AdvertService advertService)
 {
     _service       = service;
     _advertService = advertService;
 }