예제 #1
0
        public ICollection <string> ValidateCardCreation(CreateCardViewModel model)
        {
            var errors = new List <string>();

            if (model.Name.Length < 5 || model.Name.Length > 15)
            {
                errors.Add($"Card name '{model.Name}' must be between 5 and 15 characters long.");
            }

            if (string.IsNullOrWhiteSpace(model.Image))
            {
                errors.Add($"Invalid card image url.");
            }

            if (string.IsNullOrWhiteSpace(model.Keyword))
            {
                errors.Add($"Invalid keyword.");
            }

            if (model.Attack < 0)
            {
                errors.Add($"Attack cannot be negative.");
            }

            if (model.Health < 0)
            {
                errors.Add($"Health cannot be negative.");
            }

            return(errors);
        }
예제 #2
0
        public List <string> CreateCard(CreateCardViewModel model, string userId)
        {
            ICollection <string> errorsModel = this.Validator.ValidateModel(model);

            if (errorsModel.ToList().Count != 0)
            {
                return(errorsModel.ToList());
            }

            if (this.CardAlreadyExist(model.Name))
            {
                errorsModel.Add("Card with That Name Already Exists");
                return(errorsModel.ToList());
            }

            var card = new Card
            {
                Name        = model.Name,
                Attack      = model.Attack,
                Health      = model.Health,
                ImageUrl    = model.Image,
                Description = model.Description,
                Keyword     = model.Keyword,
            };

            this.Data.Cards.Add(card);

            this.Data.SaveChanges();

            return(errorsModel.ToList());
        }
예제 #3
0
        public HttpResponse Add(CreateCardViewModel model)
        {
            var modelErrors = this.validator.ValidateCardCreation(model);

            if (modelErrors.Any())
            {
                return(Error(modelErrors));
            }

            var card = new Card
            {
                Name        = model.Name,
                ImageUrl    = model.Image,
                Keyword     = model.Keyword,
                Attack      = model.Attack,
                Health      = model.Health,
                Description = model.Description
            };

            this.data.Cards.Add(card);

            var userCard = new UserCard {
                UserId = User.Id, CardId = card.Id
            };

            this.data.UserCards.Add(userCard);

            this.data.SaveChanges();

            return(Redirect("/Cards/All"));
        }
예제 #4
0
        public HttpResponse Add(CreateCardViewModel model)
        {
            var errorsModel = this.validator.ValidateCard(model);

            if (errorsModel.Any())
            {
                return(Redirect("/Cards/Add"));
            }

            var card = new Card
            {
                Name        = model.Name,
                ImageUrl    = "f",//model.ImageUrl,
                Keyword     = model.Keyword,
                Attack      = model.Attack,
                Health      = model.Health,
                Description = model.Description
            };

            this.context.Cards.Add(card);

            this.context.SaveChanges();

            return(Redirect("/Cards/All"));
        }
예제 #5
0
        public HttpResponse Add(CreateCardViewModel model)
        {
            if (!User.IsAuthenticated)
            {
                return(Redirect("/Users/Login"));
            }

            var checkForErrors = CardsService.CreateCard(model, this.User.Id);

            if (checkForErrors.Count != 0)
            {
                return(Error(checkForErrors));
            }

            return(Redirect("/Cards/All"));
        }
예제 #6
0
 public IHttpActionResult CreateNewCard(CreateCardViewModel vm)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Invalid View Model"));
     }
     try
     {
         var dbCardEntity  = Mapper.Map <Card>(vm);
         int id            = _cardRepository.Add(dbCardEntity);
         var createdDbCard = _cardRepository.GetById(id);
         return(Ok(createdDbCard));
     }
     catch (Exception e)
     {
         _logger.Error("Could not create card. Exception Message: " + e.Message);
         return(BadRequest("Could not update card's status"));
     }
 }
예제 #7
0
        public ICollection <string> ValidateCard(CreateCardViewModel model)
        {
            var errors = new List <string>();

            if (model.Name.Length < MinLengthCardName || model.Name.Length > MaxLengthCardName)
            {
                errors.Add($"Card name have to be between {MinLengthCardName} and {MaxLengthCardName} characters.");
            }
            if (model.Description.Length > MaxLengthCardDescription)
            {
                errors.Add($"Card name cannot be longer than {MaxLengthCardDescription} characters.");
            }
            if (string.IsNullOrWhiteSpace(model.Name) || string.IsNullOrWhiteSpace(model.Description) ||
                string.IsNullOrWhiteSpace(model.Attack.ToString()) || string.IsNullOrWhiteSpace(model.Health.ToString())
                )
            {
                errors.Add("Some field from form is empty;");
            }
            //if (!Uri.IsWellFormedUriString(model.ImageUrl, UriKind.Absolute))
            //{
            //    errors.Add($"Image {model.ImageUrl} is not a valid URL.");
            //}
            return(errors);
        }
예제 #8
0
 public ActionResult Create(CreateCardViewModel createCard)
 {
     return(View(createCard));
 }