public async Task <IActionResult> Create()
        {
            var user = await this.userManager.GetUserAsync(this.User);

            var model = new CreateVacationViewModel {
                UserId = user.Id, FromDate = DateTime.UtcNow.Date, ToDate = DateTime.UtcNow.Date
            };

            return(this.View(model));
        }
        public async Task <IActionResult> Create(CreateVacationViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            await this.vocationService.CreateAsync(model);

            return(this.RedirectToAction("Index"));
        }
        public async Task <IActionResult> Create(CreateVacationViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View("/Areas/Manager/Views/Vacations/Create.cshtml", model));
            }

            await this.vacationsService.CreateAsync(model);

            return(this.RedirectToAction("Index"));
        }
        public ActionResult Vacation(int id)
        {
            var emp           = _service.GetById(id);
            var availableDays = _vacationService.GetAvailableDays(id);
            var vac           = new CreateVacationViewModel
            {
                EmpId         = emp.Id,
                AvailableDays = availableDays,
            };

            return(View(vac));
        }
        public async Task CreateAsync(CreateVacationViewModel model)
        {
            var vocation = new Vacations
            {
                Tittle    = model.Tittle,
                FromDate  = model.FromDate,
                ToDate    = model.ToDate,
                CreatedOn = DateTime.UtcNow,
                IsDeleted = false,
                UserId    = model.UserId
            };

            await this.vocationsRepository.AddAsync(vocation);

            await this.vocationsRepository.SaveChangesAsync();
        }
        public async Task <IHttpActionResult> Vacation(CreateVacationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            if (model.EndDate < model.StartDate)
            {
                return(BadRequest("Неверно выбраны даты отпуска."));
            }
            var vacationDays = ((DateTime)model.EndDate - (DateTime)model.StartDate).Days;

            if (vacationDays > model.AvailableDays)
            {
                return(BadRequest("Количество выбранных дней не должно превышать количество доступных дней."));
            }

            await _vacationService.StartVacation(model.EmpId, model.StartDate, model.EndDate);

            return(Ok());
        }
        public async Task <ActionResult> Vacation(CreateVacationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            if (model.EndDate < model.StartDate)
            {
                model.ErrorMessage = "Неверно выбраны даты отпуска.";
                return(View(model));
            }
            var vacationDays = ((DateTime)model.EndDate - (DateTime)model.StartDate).Days;

            if (vacationDays > model.AvailableDays)
            {
                model.ErrorMessage = "Количество выбранных дней не должно превышать количество доступных дней.";
                return(View(model));
            }

            await _vacationService.StartVacation(model.EmpId, model.StartDate, model.EndDate);

            return(RedirectToAction("Index"));
        }
        public IActionResult CreateVacation(CreateVacationViewModel model)
        {
            var user = _userManager.FindByNameAsync(User.Identity.Name);

            //List all the links to what you can do at a Vacation
            if (ModelState.IsValid)
            {
                var vacation = new Vacation
                {
                    StartDate = model.StartDate,
                    EndDate   = model.EndDate,
                    Reason    = model.Reason,
                    UserId    = user.Result.Id
                };
                _context.Vacations.Add(vacation);
                var result = _context.SaveChanges();
                if (result == 1)
                {
                    //Redirect to the details view
                    return(RedirectToAction("DetailVacation", new { id = vacation.Id }));
                }
            }
            return(View());
        }