Exemplo n.º 1
0
        public List <GameStoreResponse> createStoreItemsResponse(List <StoreEN> pStoreList)
        {
            foreach (var item in pStoreList)
            {
                GameStoreResponse gameStoreResponse = new GameStoreResponse();
                gameStoreResponse.StoreID     = item.StoreID;
                gameStoreResponse.Name        = item.Name;
                gameStoreResponse.Description = item.Description;
                gameStoreResponse.ImgUrl      = item.ImgUrl;
                gameStoreResponse.Value       = item.Value;
                listGameStoreResponse.Add(gameStoreResponse);
            }

            return(listGameStoreResponse);
        }
        public HttpResponseMessage GetStoreItems(HttpRequestMessage request)
        {
            string              error           = "";
            PersonBL            ConsumerAuth    = new PersonBL();
            GameStoreResponse   storeResponse   = new GameStoreResponse();
            GameStoreInteractor storeInteractor = new GameStoreInteractor();
            GenericApiResponse  response        = new GenericApiResponse();
            StoreBL             storeBL         = new StoreBL();

            try
            {
                IEnumerable <string> AppVersion = null;
                request.Headers.TryGetValues("AppVersion", out AppVersion);

                IEnumerable <string> Platform = null;
                request.Headers.TryGetValues("Platform", out Platform);

                bool ApplyValidation = bool.Parse(ConfigurationManager.AppSettings["ApplyValidationAppVersion"].ToString());

                if (ApplyValidation == false || (AppVersion != null && Platform != null))
                {
                    string versionRequired = "";

                    var isValidVersion = (ApplyValidation == false) ? true : gameBL.IsValidAppVersion(AppVersion.FirstOrDefault(), Platform.FirstOrDefault(), ref error, ref versionRequired);

                    if (isValidVersion)
                    {
                        IEnumerable <string> key = null;
                        request.Headers.TryGetValues("authenticationKey", out key);
                        var consumerFb = ConsumerAuth.authenticateConsumer(key.FirstOrDefault().ToString());

                        if (consumerFb != null)
                        {
                            var storeItems = storeBL.GetStoreItems(consumerFb.ConsumerID);
                            if (storeItems != null)
                            {
                                storeInteractor.listGameStoreResponse = storeInteractor.createStoreItemsResponse(storeItems);

                                return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, storeInteractor));
                            }
                            else
                            {
                                response.HttpCode = 400;
                                response.Message  = "invalid parameters";
                                return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response));
                            }
                        }
                        else
                        {
                            response.HttpCode = 404;
                            response.Message  = "Facebook information not found";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                        }
                    }
                    else
                    {
                        response.HttpCode     = 426;
                        response.InternalCode = versionRequired;
                        response.Message      = "Upgrade required";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.UpgradeRequired, response));
                    }
                }
                else
                {
                    response.HttpCode = 404;
                    response.Message  = "Version or Platform parameter can not be null";
                    return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                }
            }
            catch (Exception)
            {
                response.HttpCode = 500;
                response.Message  = "something went wrong";
                return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response));
            }
        }