public async Task <HttpResponseMessage> requestTopup(HttpRequestMessage pRequest, [FromBody] TopupRequestReq data)
        {
            IEnumerable <string> authKey = null;

            pRequest.Headers.TryGetValues("authenticationKey", out authKey);

            if (authKey != null)
            {
                var consumerVerified = consumerBL.AuthenticateConsumer(authKey.FirstOrDefault());

                if (consumerVerified != null)
                {
                    if (consumerVerified.IsValidKey)
                    {
                        TopupInteractor interactor = new TopupInteractor();
                        var             validation = interactor.ValidateTopupRequest(data);

                        if (!validation.result)
                        {
                            response.HttpCode = 400;
                            response.Message  = validation.Message;
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                        }
                        else
                        {
                            bool result = await topupBL.RequestTopup(consumerVerified.ConsumerID, consumerVerified.Nickname, data.targetPhoneNumber, data.vendorCode, data.amount, data.operatorID, data.CategoryID);

                            SimpleTextResponse textResponse = new SimpleTextResponse();
                            textResponse.result = result;

                            textResponse.Message = (result) ? "Succes" : "Request was made sucesfully, but notification failed";

                            return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, textResponse));
                        }
                    }
                    else
                    {
                        response.HttpCode = 401;
                        response.Message  = "Authentication key is not valid";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                    }
                }
                else
                {
                    response.HttpCode = 401;
                    response.Message  = "Invalid authentication key";
                    return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                }
            }
            else
            {
                response.HttpCode = 401;
                response.Message  = "Authentication key is required";
                return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
            }
        }
Exemple #2
0
        public HttpResponseMessage InsertNicknameConsumer(HttpRequestMessage pRequest, [FromBody] NicknameReq data)
        {
            IEnumerable <string> AppVersion = null;

            pRequest.Headers.TryGetValues("AppVersion", out AppVersion);

            IEnumerable <string> Platform = null;

            pRequest.Headers.TryGetValues("Platform", out Platform);

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

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

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

                if (isValidVersion)
                {
                    IEnumerable <string> authKey = null;
                    pRequest.Headers.TryGetValues("authenticationKey", out authKey);

                    if (authKey != null)
                    {
                        var consumerVerified = consumerBL.AuthenticateConsumer(authKey.FirstOrDefault());

                        if (consumerVerified != null)
                        {
                            if (consumerVerified.IsValidKey)
                            {
                                if (String.IsNullOrEmpty(consumerVerified.Nickname))
                                {
                                    if (String.IsNullOrEmpty(data.Nickname))
                                    {
                                        response.HttpCode = 400;
                                        response.Message  = "Nickname is required";
                                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                                    }
                                    else
                                    {
                                        SimpleTextResponse  response = new SimpleTextResponse();
                                        HttpResponseMessage responseMessage;

                                        switch (consumerBL.AddConsumerNickname(consumerVerified, data.Nickname).Message)
                                        {
                                        case "error":
                                            response.Message = "Something went wrong";
                                            response.result  = false;
                                            responseMessage  = Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response);
                                            break;

                                        case "updated":
                                            response.Message = "Operation completed succesfully";
                                            response.result  = true;
                                            responseMessage  = Request.CreateResponse <IResponse>(HttpStatusCode.OK, response);
                                            break;

                                        case "conflict":
                                            response.Message = "Nickname already exist";
                                            response.result  = false;
                                            responseMessage  = Request.CreateResponse <IResponse>(HttpStatusCode.NotAcceptable, response);
                                            break;

                                        case "forbidden":
                                            response.Message = "Forbidden nickname";
                                            response.result  = false;
                                            responseMessage  = Request.CreateResponse <IResponse>(HttpStatusCode.Forbidden, response);
                                            break;

                                        default:
                                            response.Message = "Something went wrong";
                                            response.result  = false;
                                            responseMessage  = Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response);
                                            break;
                                        }

                                        return(responseMessage);
                                    }
                                }
                                else
                                {
                                    response.HttpCode = 401;
                                    response.Message  = "User has already a Nickname";
                                    return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                                }
                            }
                            else
                            {
                                response.HttpCode = 401;
                                response.Message  = "Authentication key is not valid";
                                return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                            }
                        }
                        else
                        {
                            response.HttpCode = 401;
                            response.Message  = "Authentication key is required";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                        }
                    }
                    else
                    {
                        response.HttpCode = 401;
                        response.Message  = "Authentication key is required";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, 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));
            }
        }
Exemple #3
0
        public HttpResponseMessage RegisterConsumer(HttpRequestMessage pRequest, [FromBody] RegisterPhoneReqBody data)
        {
            IEnumerable <string> AppVersion = null;

            pRequest.Headers.TryGetValues("AppVersion", out AppVersion);

            IEnumerable <string> Platform = null;

            pRequest.Headers.TryGetValues("Platform", out Platform);

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

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

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

                if (isValidVersion)
                {
                    IEnumerable <string> authKey = null;
                    pRequest.Headers.TryGetValues("authenticationKey", out authKey);

                    if (authKey != null)
                    {
                        var consumerVerified = consumerBL.AuthenticateConsumer(authKey.FirstOrDefault());

                        if (consumerVerified != null)
                        {
                            if (consumerVerified.IsValidKey)
                            {
                                if (String.IsNullOrEmpty(data.deviceID) || String.IsNullOrEmpty(data.phone) || String.IsNullOrEmpty(data.countryID))
                                {
                                    response.HttpCode = 400;
                                    response.Message  = "Values for 'phone', 'countryID' and 'deviceID' are required.";
                                    return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                                }
                                else
                                {
                                    PhoneConsumerResponse phoneResponse = new PhoneConsumerResponse();

                                    var RegisterPhoneResult = tokenBL.RegisterPhoneConsumer(consumerVerified, data.phone, data.deviceID, Convert.ToInt32(data.countryID));
                                    if (RegisterPhoneResult.registeredAndSent != false)
                                    {
                                        phoneResponse.result     = true;
                                        phoneResponse.consumerID = consumerVerified.ConsumerID;
                                        phoneResponse.message    = "Operation succeeded";
                                        return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, phoneResponse));
                                    }
                                    else if (RegisterPhoneResult.TimeRemaining != null)
                                    {
                                        phoneResponse.result           = false;
                                        phoneResponse.consumerID       = consumerVerified.ConsumerID;
                                        phoneResponse.message          = "Last confirmation message was sended in less than 1.5 minutes ago";
                                        phoneResponse.SecondsRemaining = RegisterPhoneResult.TimeRemaining;
                                        return(Request.CreateResponse <IResponse>(HttpStatusCode.Created, phoneResponse));
                                    }
                                    else
                                    {
                                        phoneResponse.result     = false;
                                        phoneResponse.consumerID = consumerVerified.ConsumerID;
                                        phoneResponse.message    = "Something went wrong";
                                        return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, phoneResponse));
                                    }
                                }
                            }
                            else
                            {
                                response.HttpCode = 401;
                                response.Message  = "Authentication key is not valid";
                                return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                            }
                        }
                        else
                        {
                            response.HttpCode = 401;
                            response.Message  = "Authentication key is required";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                        }
                    }
                    else
                    {
                        response.HttpCode = 401;
                        response.Message  = "Authentication key is required";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, 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));
            }
        }