예제 #1
0
 public HttpResponseMessage AddGuild(GuildModelDto request)
 {
     try
     {
         _dataAccess.AddGuild(request);
         var getPlayer =
             _dataAccess.GetPlayerByUserId(((UserModel)ActionContext.Request.Properties["user"]).Id);
         _dataAccess.AddGuildMember(getPlayer.Name, request.Name);
         return(Request.CreateResponse(HttpStatusCode.OK, "Guild successfully added"));
     }
     catch (PlayerNotFoundException playerNotFoundException)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError,
                                       new ErrorResponse(PlayerNotFoundException.ERROR_CODE, playerNotFoundException.Message)));
     }
     catch (GuildNotFoundException guildNotFoundException)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError,
                                       new ErrorResponse(GuildNotFoundException.ERROR_CODE, guildNotFoundException.Message)));
     }
     catch (FactionNotFoundException factionNotFoundException)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError,
                                       new ErrorResponse(FactionNotFoundException.ERROR_CODE, factionNotFoundException.Message)));
     }
     catch (Exception e)
     {
         SmartApartmentLogger.LogAsync(ELogType.Error, e.Message);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError,
                                       new ErrorResponse(500, "Internal server error. Please try again later")));
     }
 }
        public void AddGuild(GuildModelDto dto)
        {
            if (_entities.guilds.FirstOrDefault(x => x.name.Equals(dto.Name)) != null)
            {
                throw new GuildAlreadyExistsException();
            }
            if (_entities.factions.FirstOrDefault(x => x.pk_id == dto.FactionId) == null)
            {
                throw FactionNotFoundException.FromId(dto.FactionId);
            }

            _entities.guilds.Add(dto.ToDbObject());
            _entities.SaveChanges();
        }