public HTTPApiResponse AddChallenger(DB.Challenger c)
        {
            HTTPApiResponse response = null;

            using (MemoryGameEntities db = new MemoryGameEntities())
            {
                var data = db.Challengers.Where(o => o.Email.ToLower().Equals(c.Email.ToLower()));
                if (data.Any())
                {
                    response = new HTTPApiResponse
                    {
                        Status            = HTTPApiResponse.StatusResponse.Fail,
                        StatusCode        = 400,
                        StatusDescription = "User with associated email already exist."
                    };
                }
                else
                {
                    db.Challengers.Add(c);
                    db.SaveChanges();

                    response = new HTTPApiResponse
                    {
                        Status            = HTTPApiResponse.StatusResponse.Success,
                        StatusCode        = 200,
                        StatusDescription = "Operation successful."
                    };
                }

                return(response);
            }
        }
        public HTTPApiResponse DeleteChallenger(int id)
        {
            HTTPApiResponse response = null;

            using (MemoryGameEntities db = new MemoryGameEntities())
            {
                var data = db.Challengers.Where(o => o.ChallengerID == id);
                if (data.Any())
                {
                    try
                    {
                        var rankData = db.Ranks.Where(o => o.ChallengerID == id);
                        if (rankData.Any())
                        {
                            db.Ranks.Remove(rankData.FirstOrDefault());
                            db.SaveChanges();
                        }

                        db.Challengers.Remove(data.FirstOrDefault());
                        db.SaveChanges();

                        response = new HTTPApiResponse
                        {
                            Status            = HTTPApiResponse.StatusResponse.Success,
                            StatusCode        = 200,
                            StatusDescription = "Operation successful."
                        };
                    }
                    catch (System.Data.Entity.Validation.DbUnexpectedValidationException)
                    {
                        //handle error and log

                        response = new HTTPApiResponse
                        {
                            Status            = HTTPApiResponse.StatusResponse.Fail,
                            StatusCode        = 500,
                            StatusDescription = "An unexpected error occured."
                        };
                    }
                }
                else
                {
                    response = new HTTPApiResponse
                    {
                        Status            = HTTPApiResponse.StatusResponse.Fail,
                        StatusCode        = 400,
                        StatusDescription = "Associated ID not found."
                    };
                }

                return(response);
            }
        }