コード例 #1
0
ファイル: StartKmValidator.cs プロジェクト: wladcy/Distance
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ValidationResult retval    = new ValidationResult("");
            TravelViewModels rvm       = (TravelViewModels)validationContext.ObjectInstance;
            bool             isCorrect = true;

            if (rvm.StartKm != null)
            {
                foreach (char c in rvm.StartKm)
                {
                    if (!char.IsDigit(c))
                    {
                        isCorrect = false;
                        break;
                    }
                }
            }
            DatabaseControler dc = new DatabaseControler();
            Cars car             = dc.GetCarDatabaseModelById(rvm.CarId);

            if (!isCorrect)
            {
                retval.ErrorMessage += "Przebieg jest liczbą. ";
            }
            if (rvm.StartKm != null && isCorrect && int.Parse(rvm.StartKm) < car.KmAge)
            {
                retval.ErrorMessage += "Przebieg przed podróżą nie może być mniejszy niż aktualny przebieg pojazdu. Aktualny przebieg to: " + car.KmAge + " km. ";
            }

            return(string.IsNullOrEmpty(retval.ErrorMessage) ? ValidationResult.Success : retval);
        }
コード例 #2
0
ファイル: PurposeValidator.cs プロジェクト: wladcy/Distance
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ValidationResult retval    = new ValidationResult("");
            TravelViewModels rvm       = (TravelViewModels)validationContext.ObjectInstance;
            bool             isCorrect = true;

            if (rvm.Purpose != null)
            {
                foreach (char c in rvm.Purpose)
                {
                    if (!char.IsLetter(c) && !char.IsWhiteSpace(c))
                    {
                        isCorrect = false;
                        break;
                    }
                }
            }

            if (!isCorrect)
            {
                retval.ErrorMessage += "Cel podróży zawiera niepoprawne znaki. ";
            }

            return(string.IsNullOrEmpty(retval.ErrorMessage) ? ValidationResult.Success : retval);
        }
コード例 #3
0
ファイル: ToValidator.cs プロジェクト: wladcy/Distance
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ValidationResult retval    = new ValidationResult("");
            TravelViewModels rvm       = (TravelViewModels)validationContext.ObjectInstance;
            bool             isCorrect = true;

            if (rvm.To != null)
            {
                foreach (char c in rvm.To)
                {
                    if (!char.IsLetter(c) && !char.IsWhiteSpace(c))
                    {
                        isCorrect = false;
                        break;
                    }
                }
            }

            if (!isCorrect)
            {
                retval.ErrorMessage += "Koniec podróży to nazwa miejscowości. ";
            }

            return(string.IsNullOrEmpty(retval.ErrorMessage) ? ValidationResult.Success : retval);
        }
コード例 #4
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            ValidationResult retval    = new ValidationResult("");
            TravelViewModels rvm       = (TravelViewModels)validationContext.ObjectInstance;
            bool             isCorrect = true;

            if (rvm.StopKm != null)
            {
                foreach (char c in rvm.StopKm)
                {
                    if (!char.IsDigit(c))
                    {
                        isCorrect = false;
                        break;
                    }
                }
            }

            if (!isCorrect)
            {
                retval.ErrorMessage += "Przebieg jest liczbą. ";
            }
            else if (rvm.StopKm != null)
            {
                int start = 0;
                int stop  = int.Parse(rvm.StopKm);
                if (!rvm.StartTravel && int.TryParse(rvm.StartKm, out start) && start >= stop)
                {
                    retval.ErrorMessage += "Przebieg przed podróżą nie może być większy lub równy od przebiegu po podróży. ";
                }
            }
            return(string.IsNullOrEmpty(retval.ErrorMessage) ? ValidationResult.Success : retval);
        }
コード例 #5
0
ファイル: DatabaseControler.cs プロジェクト: wladcy/Distance
        public TravelViewModels GetCurrentTravel(ApplicationUser user, int carId)
        {
            int              companyId = getCompanyIdByUser(user);
            Travel           travel    = context.Travel.Where(t => t.Car.Id == carId && t.Car.Company.CompanyID == companyId && t.User.Id.Equals(user.Id) && t.Car.CarStatus.Status.Equals("W trasie") && t.CarMileageStop == 0).FirstOrDefault();
            TravelViewModels tvm       = new TravelViewModels();

            if (travel != null && travel.Id != 0)
            {
                tvm.From    = travel.From;
                tvm.Notes   = travel.Notes;
                tvm.Purpose = travel.Purpose;
                tvm.StartKm = travel.CarMileageStart.ToString();
                tvm.StopKm  = travel.CarMileageStop.ToString();
                tvm.To      = travel.To;
            }
            return(tvm);
        }
コード例 #6
0
ファイル: TravelsController.cs プロジェクト: wladcy/Distance
        public ActionResult StartTravel(string id)
        {
            TravelViewModels tvm = new TravelViewModels();

            tvm.Button = "Start";
            tvm.Title  = "Rozpocznij podróż";
            int Id = 0;
            DatabaseControler dc = new DatabaseControler();

            if (!int.TryParse(id, out Id) || dc.IsInTravel(Id))
            {
                return(RedirectToAction("Index", "Home"));
            }
            tvm.CarId       = Id;
            tvm.StopKm      = "0";
            tvm.StartTravel = true;
            return(View("TravelsForm", tvm));
        }
コード例 #7
0
ファイル: DatabaseControler.cs プロジェクト: wladcy/Distance
        private List <TravelViewModels> getTravelsByCarId(int carId, int month, int year)
        {
            List <TravelViewModels> retval = new List <TravelViewModels>();
            List <Travel>           list   = context.Travel.Where(t => t.CarId == carId && t.TravelDate.Month == month && t.TravelDate.Year == year).ToList();

            foreach (Travel t in list)
            {
                TravelViewModels tvm = new TravelViewModels();
                tvm.From       = t.From;
                tvm.Notes      = t.Notes;
                tvm.Purpose    = t.Purpose;
                tvm.StartKm    = t.CarMileageStart.ToString();
                tvm.StopKm     = t.CarMileageStop.ToString();
                tvm.To         = t.To;
                tvm.TravelDate = t.TravelDate;
                retval.Add(tvm);
            }
            return(retval);
        }
コード例 #8
0
ファイル: TravelsController.cs プロジェクト: wladcy/Distance
        public ActionResult StopTravel(string id)
        {
            DatabaseControler dc = new DatabaseControler();
            var userName         = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user = userManager.FindByName(userName);
            int Id   = 0;

            if (!int.TryParse(id, out Id))
            {
                return(RedirectToAction("Index", "Home"));
            }
            TravelViewModels tvm = dc.GetCurrentTravel(user, Id);

            tvm.Button = "Stop";
            tvm.Title  = "Zakończ podróż";
            tvm.CarId  = Id;
            tvm.StopKm = string.Empty;
            return(View("TravelsForm", tvm));
        }
コード例 #9
0
ファイル: TravelsController.cs プロジェクト: wladcy/Distance
        public ActionResult UpdateTravel(TravelViewModels model)
        {
            if (!ModelState.IsValid)
            {
                return(View("TravelsForm", model));
            }
            DatabaseControler dc = new DatabaseControler();
            var userName         = User.Identity.Name;
            ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user = userManager.FindByName(userName);

            dc.UpdateTravel(model, user);
            if (model.StartTravel)
            {
                return(RedirectToAction("Index", "Home", new { Message = AccountMessageId.StartTravelSuccess }));
            }
            else
            {
                return(RedirectToAction("Index", "Home", new { Message = AccountMessageId.StopTravelSuccess }));
            }
        }
コード例 #10
0
ファイル: DatabaseControler.cs プロジェクト: wladcy/Distance
        public void UpdateTravel(TravelViewModels model, ApplicationUser user)
        {
            int    companyId = getCompanyIdByUser(user);
            Travel travel    = context.Travel.Where(t => t.Car.Id == model.CarId && t.Car.Company.CompanyID == companyId && t.User.Id.Equals(user.Id) && t.Car.CarStatus.Status.Equals("W trasie")).FirstOrDefault();

            if (travel != null && travel.Id != 0)
            {
                travel.CarMileageStop = int.Parse(model.StopKm);
                travel.Notes          = model.Notes;
                travel.To             = model.To;
                travel.ModyfiTime     = DateTime.Now;
                travel.TravelDate     = DateTime.Now;
                Cars car = GetCarDatabaseModelById(model.CarId);
                car.KmAge                   = int.Parse(model.StopKm);
                car.CarStatusId             = getCarStatusId("Dostępny");
                travel.Car                  = car;
                context.Entry(travel).State = EntityState.Modified;
            }
            else
            {
                travel                 = new Travel();
                travel.CarId           = model.CarId;
                travel.CarMileageStart = int.Parse(model.StartKm);
                travel.CarMileageStop  = int.Parse(model.StopKm);
                travel.CreateTime      = DateTime.Now;
                travel.From            = model.From;
                travel.ModyfiTime      = DateTime.Now;
                travel.Notes           = model.Notes;
                travel.Purpose         = model.Purpose;
                travel.To              = model.To;
                travel.TravelDate      = DateTime.Now;
                travel.UserId          = user.Id;
                Cars car = GetCarDatabaseModelById(model.CarId);
                car.KmAge                   = int.Parse(model.StartKm);
                car.CarStatusId             = getCarStatusId("W trasie");
                travel.Car                  = car;
                context.Entry(travel).State = EntityState.Added;
            }
            context.SaveChanges();
        }