コード例 #1
0
        public async Task <IActionResult> Create(TrainingCreateViewModel model)
        {
            if (model.NumOfLevelOneGame + model.NumOfLevelTwoGame + model.NumOfLevelThreeGame > 20 || model.NumOfLevelOneGame + model.NumOfLevelTwoGame + model.NumOfLevelThreeGame < 1)
            {
                ModelState.AddModelError("NumOfLevelThreeGame", "The number of games in the training must be from 1 to 20");
            }
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(this.HttpContext.User);

                var training = new Training
                {
                    Name                = model.Name,
                    Player              = user,
                    Created             = DateTime.UtcNow,
                    NumOfLevelOneGame   = model.NumOfLevelOneGame,
                    NumOfLevelTwoGame   = model.NumOfLevelTwoGame,
                    NumOfLevelThreeGame = model.NumOfLevelThreeGame,
                    Games               = new List <Game>()
                };
                _context.Add(training);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index", "PersonalArea"));
            }

            return(View(model));
        }
コード例 #2
0
        // GET: Trainings/Create
        public ActionResult Create()
        {
            var trainingCreateViewModel = new TrainingCreateViewModel();

            trainingCreateViewModel.Tags = db.Tags.ToList();
            return(View(trainingCreateViewModel));
        }
コード例 #3
0
        public async Task <ActionResult> Create(TrainingCreateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(ModelState.ToDictionary()));
            }

            var createdTraining = await _trainingServices.CreateAsync(model, User.Identity.GetUserId());

            return(Json(createdTraining));
        }
コード例 #4
0
        public ActionResult Create(TrainingCreateViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var training = this.Mapper.Map <Training>(model);

            this.trainings.Add(training);
            this.TempData["Success"] = "Item created!";

            return(this.RedirectToAction("Index"));
        }
コード例 #5
0
        public async Task <TrainingListViewModel> CreateAsync(TrainingCreateViewModel model, string adminId)
        {
            if (string.IsNullOrEmpty(adminId))
            {
                throw new ArgumentException("Не е намерен администартора, който създава Обучение!");
            }

            if (!await _userManager.IsInRoleAsync(adminId, Enum.GetName(typeof(Role), Role.Administrator)))
            {
                throw new NotAuthorizedUserException("Потребителят няма право на това действие! Само админи имат право да създават обучения !");
            }

            if (model.TrainingDate == null)
            {
                throw new ArgumentException("Не е въведена дата на обучението!");
            }

            var training = new Model.Trainings
            {
                TrainingDate                = (DateTime)model.TrainingDate,
                TrainingTheme               = model.TrainingTheme,
                AdditionalDescription       = model.AdditionalDescription,
                TrainingMaterialsFolderLink = model.TrainingMaterialsFolderLink
            };

            _dbContext.Trainings.Add(training);
            await _dbContext.SaveChangesAsync();

            #region notification

            var notificationToCreate = new NotificationCreateViewModel
            {
                NotificationTypeId = (int)NotificationType.Learning,
                NotificationLink   = "/trainings/index?trainingId=" + training.Id,
                NotificationText   = "Ще се проведе обучение на тема: " + training.TrainingTheme + " в " +
                                     training.TrainingDate.ToString("dddd, dd.MM.yyyyг. hh:mmч.")
            };

            await _notificationCreator.CreateGlobalNotification(notificationToCreate, adminId);

            #endregion

            return(await Get(training.Id));
        }
コード例 #6
0
        public ActionResult Create()
        {
            var date         = DateTime.Now;
            var testTraining = new TrainingCreateViewModel()
            {
                Title     = "Test Training 1",
                StartDate = date,
                EndDate   = date.AddHours(5),
            };

            var testTrack = new TrackCreateViewModel()
            {
                Title        = "Test track 1",
                Ascent       = 2500,
                Length       = 80,
                AscentLength = 45,
            };

            testTraining.Track = testTrack;

            return(this.View(testTraining));
        }
コード例 #7
0
        public ActionResult Create(TrainingCreateViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.View(model);
            }

            var training = this.Mapper.Map<Training>(model);
            this.trainings.Add(training);
            this.TempData["Success"] = "Item created!";

            return this.RedirectToAction("Index");
        }
コード例 #8
0
        public ActionResult Create()
        {
            var date = DateTime.Now;
            var testTraining = new TrainingCreateViewModel()
            {
                Title = "Test Training 1",
                StartDate = date,
                EndDate = date.AddHours(5),
            };

            var testTrack = new TrackCreateViewModel()
            {
                Title = "Test track 1",
                Ascent = 2500,
                Length = 80,
                AscentLength = 45,
            };

            testTraining.Track = testTrack;

            return this.View(testTraining);
        }