Ejemplo n.º 1
0
        public HttpResponseMessage CreateHeroe(CreateHeroeModel model,
                                               [ValueProvider(typeof(HeaderValueProviderFactory <string>))]
                                               string sessionKey)
        {
            return(this.ExecuteOperationAndHandleExceptions(() =>
            {
                var context = new GameContext();
                var user = BasePersister.GetUserBySessionKey(sessionKey, context);

                if (user == null)
                {
                    throw new InvalidOperationException("Invalid username or password!");
                }

                HeroePersister.ValidateCreateHeroe(model, context);

                Hero newHeroe = new Hero()
                {
                    Name = model.Name,
                    Race = context.Races.First(r => r.Id == model.Race),
                    Level = StartHeroeLevel,
                    Points = StartHeroePoints,
                    Money = StartHeroeMoney,
                    NumberOfLoses = 0,
                    NumberOfWins = 0,
                    User = BasePersister.GetUserBySessionKey(sessionKey, context),
                    Units = new HashSet <Unit>()
                };
                context.Heroes.Add(newHeroe);

                context.SaveChanges();

                var response = this.Request.CreateResponse(HttpStatusCode.NoContent);
                return response;
            }));
        }
Ejemplo n.º 2
0
 public static void ValidateCreateHeroe(CreateHeroeModel model, GameContext context)
 {
     ValidateName(model.Name);
     ValidateRace(model.Race, context);
 }