Exemple #1
0
        /// Set redis rank by member
        public MemberRankNumber POST(InputParams p)
        {
            MemberRankNumber result = new MemberRankNumber();

            // Get the sid or memberID of the current user.
            var claimsPrincipal = this.User as ClaimsPrincipal;

            p.sid = CBAuth.getMemberID(p.sid, claimsPrincipal);

            /// logging purpose
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p.sid);


            try
            {
                /// set redis point and return
                CBRedis.SetSortedSetRank(p.sid, p.point);
                result.rank = CBRedis.GetSortedSetRank(p.sid);
                return(result);
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.sid;       // requested value. Not redis data value.
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBRankController-SetMemberPoint";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #2
0
        public SortedSetEntry[] GET(string sid, long startRank, long endRank)   /// @todo not a good idea getting sid from usermode
        {
            // Get the sid or memberID of the current user.
            var claimsPrincipal = this.User as ClaimsPrincipal;

            sid = CBAuth.getMemberID(sid, claimsPrincipal);

            /// logging purpose
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(sid);

            try
            {
                /// fetch redis list by rank range
                SortedSetEntry[] se = CBRedis.GetSortedSetRankByRange(startRank, endRank);
                return(se);
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = sid;       // server autenticated sid
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBRankController-RankerListByRange";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #3
0
        // DELETE: odata/Members(5)
        public IHttpActionResult Delete([FromODataUri] string key)
        {
            Members members = db.Members.Find(key);

            if (members == null)
            {
                return(NotFound());
            }

            db.Members.Remove(members);
            db.SaveChanges();

            // Log Message
            logMsg = new Logging.CBLoggers
            {
                memberID = CBAuth.getMemberID(this.User as ClaimsPrincipal),
                Level    = "INFO",
                Logger   = "Members-DELETE",
                Message  = key
            };

            Logging.RunLog(logMsg);

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #4
0
        public MemberRankNumber Get(string sid)
        {
            MemberRankNumber result = new MemberRankNumber();

            // Get the sid or memberID of the current user.
            var claimsPrincipal = this.User as ClaimsPrincipal;

            sid = CBAuth.getMemberID(sid, claimsPrincipal);

            /// logging purpose
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(sid);

            try
            {
                /// fetch redis value by member sid
                result.rank = CBRedis.GetSortedSetRank(sid);

                return(result);
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = sid;       // authenricated server sid
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBRankController-MemberRankNumber";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #5
0
        // POST: odata/GiftDepositories
        public IHttpActionResult Post(GiftDepositories giftDepositories)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.GiftDepositories.Add(giftDepositories);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (GiftDepositoriesExists(giftDepositories.GiftDepositoryID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            Logging.CBLoggers logMsg = logBuilder.build(this, Logging.CBLoggerBuilder.LevelType.INFO, Logging.CBLoggerBuilder.LoggerType.POST, JsonConvert.SerializeObject(giftDepositories));
            Logging.RunLog(logMsg);
            return(Created(giftDepositories));
        }
Exemple #6
0
        public SortedSetEntry[] GET(string sid, int countnum)
        {
            // Get the sid or memberID of the current user.
            var claimsPrincipal = this.User as ClaimsPrincipal;

            sid = CBAuth.getMemberID(sid, claimsPrincipal);

            /// logging purpose
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(sid);

            try
            {
                /// fetch redis list by top countnum rankers
                SortedSetEntry[] sse = CBRedis.GetTopSortedSetRank(countnum);
                return(sse);
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = sid;       // server authenticated value
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBRankController-TopRankerList";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #7
0
        public SingleResult <Members> GetMembers([FromODataUri] string key)
        {
            logMsg = new Logging.CBLoggers
            {
                memberID = CBAuth.getMemberID(this.User as ClaimsPrincipal),
                Level    = "INFO",
                Logger   = "Members-GetbyID",
                Message  = this.Request.RequestUri.PathAndQuery.ToString()
            };
            Logging.RunLog(logMsg);

            return(SingleResult.Create(db.Members.Where(members => members.MemberID == key)));
        }
        // GET api/CBSocketAuth
        public Payload Get()
        {
            Payload payload = new Payload();

            /// Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID("debug", this.User as ClaimsPrincipal);  // only for log

            payload.sid = sid;

            /// logging purpose
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(sid);

            try
            {
                /// return token object
                Token t = new Token();

                /// generate paylod
                payload.guid       = Guid.NewGuid().ToString();
                payload.genDateUTC = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");;

                /// token Serialize and encrypt
                t.token = JsonConvert.SerializeObject(payload);

                /// save to Rdis
                CBRedis.SetRedisKey(payload.guid, t.token, 30); // 30 min for socket suth TTL

                payload.sid        = "";
                payload.genDateUTC = "";
                /// @brief chagned for plain processing - token encrypt
                //t.token = Crypto.AES_encrypt(t.token, globalVal.CloudBreadSocketKeyText, globalVal.CloudBreadSocketKeyIV);

                return(payload);     //changed
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = sid;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBSocketAuth";
                logMessage.Message   = "SocketAuth error";
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #9
0
        // DELETE: odata/GiftDepositories(5)
        public IHttpActionResult Delete([FromODataUri] string key)
        {
            GiftDepositories giftDepositories = db.GiftDepositories.Find(key);

            if (giftDepositories == null)
            {
                return(NotFound());
            }

            db.GiftDepositories.Remove(giftDepositories);
            db.SaveChanges();

            Logging.CBLoggers logMsg = logBuilder.build(this, Logging.CBLoggerBuilder.LevelType.INFO, Logging.CBLoggerBuilder.LoggerType.PATCH, key);
            Logging.RunLog(logMsg);
            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #10
0
        // PUT: odata/Members(5)
        public IHttpActionResult Put([FromODataUri] string key, Delta <Members> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Members members = db.Members.Find(key);

            if (members == null)
            {
                return(NotFound());
            }

            patch.Put(members);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MembersExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            // Log Message
            logMsg = new Logging.CBLoggers
            {
                memberID = CBAuth.getMemberID(this.User as ClaimsPrincipal),
                Level    = "INFO",
                Logger   = "Members-PUT",
                Message  = JsonConvert.SerializeObject(patch)
            };

            Logging.RunLog(logMsg);

            return(Updated(members));
        }
        public static bool SubGem(ref long gem, ref long cashGem, long subGem, Logging.CBLoggers logMessage)
        {
            if (gem + cashGem < subGem)
            {
                return(false);
            }

            gem -= subGem;

            if (gem < 0)
            {
                cashGem += gem;
                gem      = 0;
            }

            logMessage.Message = string.Format("SubGem gem = {0}, cashgem = {1}, subGem = {2}", gem, cashGem, subGem);

            return(true);
        }
Exemple #12
0
        // GET api/CBSocketTokenValidCheck
        public Result POST(Token token)
        {
            // return
            Result r           = new Result();
            string redisResult = "";

            /// logging purpose
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(token);

            try
            {
                /// fetch redis value by requested token.guid
                redisResult = CBRedis.GetRedisKeyValue(token.guid);

                if (redisResult == null)
                {
                    // does not exist on Redis
                    r.guid       = "";
                    r.sid        = "";
                    r.genDateUTC = "";
                }
                else
                {
                    // Deserialize json
                    r = JsonConvert.DeserializeObject <Result>(redisResult);
                }
                return(r);
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = r.sid;       // requested value. Not redis data value.
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBSocketTokenValidCheck";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #13
0
        // POST: odata/Members
        public IHttpActionResult Post(Members members)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Members.Add(members);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (MembersExists(members.MemberID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            // Log Message
            logMsg = new Logging.CBLoggers
            {
                memberID = CBAuth.getMemberID(this.User as ClaimsPrincipal),
                Level    = "INFO",
                Logger   = "Members-POST",
                Message  = JsonConvert.SerializeObject(members)
            };

            Logging.RunLog(logMsg);

            return(Created(members));
        }
Exemple #14
0
        // PUT: odata/GiftDepositories(5)
        public IHttpActionResult Put([FromODataUri] string key, Delta <GiftDepositories> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            GiftDepositories giftDepositories = db.GiftDepositories.Find(key);

            if (giftDepositories == null)
            {
                return(NotFound());
            }

            patch.Put(giftDepositories);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!GiftDepositoriesExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            Logging.CBLoggers logMsg = logBuilder.build(this, Logging.CBLoggerBuilder.LevelType.INFO, Logging.CBLoggerBuilder.LoggerType.PUT, JsonConvert.SerializeObject(patch));
            Logging.RunLog(logMsg);
            return(Updated(giftDepositories));
        }
        public HttpResponseMessage Post(SelSendEmailToMemberInputParams p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <SelSendEmailToMemberInputParams>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            // Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID(p.memberID, this.User as ClaimsPrincipal);

            p.memberID = sid;

            // check proper authentication of member who trigger this API (Admin or member with authorized)
            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);

            HttpResponseMessage response        = new HttpResponseMessage();
            EncryptedData       encryptedResult = new EncryptedData();
            RowcountResult      rowcountResult  = new RowcountResult();

            try
            {
                /// Database connection retry policy
                RetryPolicy retryPolicy = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(globalVal.conRetryCount, TimeSpan.FromSeconds(globalVal.conRetryFromSeconds));
                using (SqlConnection connection = new SqlConnection(globalVal.DBConnectionString))
                {
                    using (SqlCommand command = new SqlCommand("uspSelSendEmailToMember", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@MemberID", SqlDbType.NVarChar, -1).Value = p.memberID;
                        connection.OpenWithRetry(retryPolicy);
                        using (SqlDataReader dreader = command.ExecuteReaderWithRetry(retryPolicy))
                        {
                            while (dreader.Read())
                            {
                                rowcountResult.result = dreader[0].ToString();
                            }
                            //////////////////////////////////////////////////////////////////////////////////////
                            //// mail sending module - reference CloudBreadlib/BAL/SendSMTPMail
                            //// check firewall, anti-virus and outbound traffic
                            //// in SendEmail lib, change your mail login info
                            //string s = SendSMTPMail.SendEmail(dreader[0].ToString(), "subject", "content");
                            //////////////////////////////////////////////////////////////////////////////////////

                            dreader.Close();
                        }
                        connection.Close();

                        /// Encrypt the result response
                        if (globalVal.CloudBreadCryptSetting == "AES256")
                        {
                            try
                            {
                                encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(rowcountResult), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                                response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                                return(response);
                            }
                            catch (Exception ex)
                            {
                                ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                                throw ex;
                            }
                        }

                        response = Request.CreateResponse(HttpStatusCode.OK, rowcountResult);
                        return(response);  // or return mail send result string s
                    }
                }
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.memberID;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBSelSendEmailToMemberController";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #16
0
        public HttpResponseMessage Post(InsRegMemberInputParams p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <InsRegMemberInputParams>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            // Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID(p.MemberID_Members, this.User as ClaimsPrincipal);

            p.MemberID_Members = sid;

            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);

            HttpResponseMessage response        = new HttpResponseMessage();
            EncryptedData       encryptedResult = new EncryptedData();
            RowcountResult      rowcountResult  = new RowcountResult();

            try
            {
                // task start log
                //logMessage.memberID = p.MemberID_Members;
                //logMessage.Level = "INFO";
                //logMessage.Logger = "CBuspInsRegMemberCheckController";
                //logMessage.Message = jsonParam;
                //Logging.RunLog(logMessage);

                /// Database connection retry policy
                RetryPolicy retryPolicy = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(globalVal.conRetryCount, TimeSpan.FromSeconds(globalVal.conRetryFromSeconds));
                using (SqlConnection connection = new SqlConnection(globalVal.DBConnectionString))
                {
                    using (SqlCommand command = new SqlCommand("uspInsRegMember", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@MemberID_Members", SqlDbType.NVarChar, -1).Value         = p.MemberID_Members;
                        command.Parameters.Add("@MemberPWD_Members", SqlDbType.NVarChar, -1).Value        = p.MemberPWD_Members;
                        command.Parameters.Add("@EmailAddress_Members", SqlDbType.NVarChar, -1).Value     = p.EmailAddress_Members;
                        command.Parameters.Add("@EmailConfirmedYN_Members", SqlDbType.NVarChar, -1).Value = p.EmailConfirmedYN_Members;
                        command.Parameters.Add("@PhoneNumber1_Members", SqlDbType.NVarChar, -1).Value     = p.PhoneNumber1_Members;
                        command.Parameters.Add("@PhoneNumber2_Members", SqlDbType.NVarChar, -1).Value     = p.PhoneNumber2_Members;
                        command.Parameters.Add("@PINumber_Members", SqlDbType.NVarChar, -1).Value         = p.PINumber_Members;
                        command.Parameters.Add("@Name1_Members", SqlDbType.NVarChar, -1).Value            = p.Name1_Members;
                        command.Parameters.Add("@Name2_Members", SqlDbType.NVarChar, -1).Value            = p.Name2_Members;
                        command.Parameters.Add("@Name3_Members", SqlDbType.NVarChar, -1).Value            = p.Name3_Members;
                        command.Parameters.Add("@DOB_Members", SqlDbType.NVarChar, -1).Value                      = p.DOB_Members;
                        command.Parameters.Add("@RecommenderID_Members", SqlDbType.NVarChar, -1).Value            = p.RecommenderID_Members;
                        command.Parameters.Add("@MemberGroup_Members", SqlDbType.NVarChar, -1).Value              = p.MemberGroup_Members;
                        command.Parameters.Add("@LastDeviceID_Members", SqlDbType.NVarChar, -1).Value             = p.LastDeviceID_Members;
                        command.Parameters.Add("@LastIPaddress_Members", SqlDbType.NVarChar, -1).Value            = p.LastIPaddress_Members;
                        command.Parameters.Add("@LastLoginDT_Members", SqlDbType.NVarChar, -1).Value              = p.LastLoginDT_Members;
                        command.Parameters.Add("@LastLogoutDT_Members", SqlDbType.NVarChar, -1).Value             = p.LastLogoutDT_Members;
                        command.Parameters.Add("@LastMACAddress_Members", SqlDbType.NVarChar, -1).Value           = p.LastMACAddress_Members;
                        command.Parameters.Add("@AccountBlockYN_Members", SqlDbType.NVarChar, -1).Value           = p.AccountBlockYN_Members;
                        command.Parameters.Add("@AccountBlockEndDT_Members", SqlDbType.NVarChar, -1).Value        = p.AccountBlockEndDT_Members;
                        command.Parameters.Add("@AnonymousYN_Members", SqlDbType.NVarChar, -1).Value              = p.AnonymousYN_Members;
                        command.Parameters.Add("@3rdAuthProvider_Members", SqlDbType.NVarChar, -1).Value          = p._3rdAuthProvider_Members;
                        command.Parameters.Add("@3rdAuthID_Members", SqlDbType.NVarChar, -1).Value                = p._3rdAuthID_Members;
                        command.Parameters.Add("@3rdAuthParam_Members", SqlDbType.NVarChar, -1).Value             = p._3rdAuthParam_Members;
                        command.Parameters.Add("@PushNotificationID_Members", SqlDbType.NVarChar, -1).Value       = p.PushNotificationID_Members;
                        command.Parameters.Add("@PushNotificationProvider_Members", SqlDbType.NVarChar, -1).Value = p.PushNotificationProvider_Members;
                        command.Parameters.Add("@PushNotificationGroup_Members", SqlDbType.NVarChar, -1).Value    = p.PushNotificationGroup_Members;
                        command.Parameters.Add("@sCol1_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol1_Members;
                        command.Parameters.Add("@sCol2_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol2_Members;
                        command.Parameters.Add("@sCol3_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol3_Members;
                        command.Parameters.Add("@sCol4_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol4_Members;
                        command.Parameters.Add("@sCol5_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol5_Members;
                        command.Parameters.Add("@sCol6_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol6_Members;
                        command.Parameters.Add("@sCol7_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol7_Members;
                        command.Parameters.Add("@sCol8_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol8_Members;
                        command.Parameters.Add("@sCol9_Members", SqlDbType.NVarChar, -1).Value                    = p.sCol9_Members;
                        command.Parameters.Add("@sCol10_Members", SqlDbType.NVarChar, -1).Value                   = p.sCol10_Members;
                        command.Parameters.Add("@TimeZoneID_Members", SqlDbType.NVarChar, -1).Value               = p.TimeZoneID_Members;
                        command.Parameters.Add("@Level_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.Level_MemberGameInfoes;
                        command.Parameters.Add("@Exps_MemberGameInfoes", SqlDbType.NVarChar, -1).Value            = p.Exps_MemberGameInfoes;
                        command.Parameters.Add("@Points_MemberGameInfoes", SqlDbType.NVarChar, -1).Value          = p.Points_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT1_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT1_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT2_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT2_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT3_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT3_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT4_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT4_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT5_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT5_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT6_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT6_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT7_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT7_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT8_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT8_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT9_MemberGameInfoes", SqlDbType.NVarChar, -1).Value       = p.UserSTAT9_MemberGameInfoes;
                        command.Parameters.Add("@UserSTAT10_MemberGameInfoes", SqlDbType.NVarChar, -1).Value      = p.UserSTAT10_MemberGameInfoes;
                        command.Parameters.Add("@sCol1_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol1_MemberGameInfoes;
                        command.Parameters.Add("@sCol2_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol2_MemberGameInfoes;
                        command.Parameters.Add("@sCol3_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol3_MemberGameInfoes;
                        command.Parameters.Add("@sCol4_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol4_MemberGameInfoes;
                        command.Parameters.Add("@sCol5_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol5_MemberGameInfoes;
                        command.Parameters.Add("@sCol6_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol6_MemberGameInfoes;
                        command.Parameters.Add("@sCol7_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol7_MemberGameInfoes;
                        command.Parameters.Add("@sCol8_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol8_MemberGameInfoes;
                        command.Parameters.Add("@sCol9_MemberGameInfoes", SqlDbType.NVarChar, -1).Value           = p.sCol9_MemberGameInfoes;
                        command.Parameters.Add("@sCol10_MemberGameInfoes", SqlDbType.NVarChar, -1).Value          = p.sCol10_MemberGameInfoes;

                        connection.OpenWithRetry(retryPolicy);
                        using (SqlDataReader dreader = command.ExecuteReaderWithRetry(retryPolicy))
                        {
                            while (dreader.Read())
                            {
                                rowcountResult.result = dreader[0].ToString();
                            }
                            dreader.Close();
                        }
                        connection.Close();

                        // task end log
                        logMessage.memberID = p.MemberID_Members;
                        logMessage.Level    = "INFO";
                        logMessage.Logger   = "CBuspInsRegMemberCheckController";
                        logMessage.Message  = jsonParam;
                        Logging.RunLog(logMessage);

                        /// Encrypt the result response
                        if (globalVal.CloudBreadCryptSetting == "AES256")
                        {
                            try
                            {
                                encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(rowcountResult), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                                response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                                return(response);
                            }
                            catch (Exception ex)
                            {
                                ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                                throw ex;
                            }
                        }

                        response = Request.CreateResponse(HttpStatusCode.OK, rowcountResult);
                        return(response);
                    }
                }
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.MemberID_Members;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBuspInsRegMemberCheckController";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
        public HttpResponseMessage Post(DWMarketCheckInputParam p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <DWMarketCheckInputParam>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);


            HttpResponseMessage response        = new HttpResponseMessage();
            EncryptedData       encryptedResult = new EncryptedData();

            try
            {
                DWMarketCheckModel result = GetResult(p);

                /// Encrypt the result response
                if (globalVal.CloudBreadCryptSetting == "AES256")
                {
                    try
                    {
                        encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(result), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                        response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                        return(response);
                    }
                    catch (Exception ex)
                    {
                        ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                        throw ex;
                    }
                }

                response = Request.CreateResponse(HttpStatusCode.OK, result);
                return(response);
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = "Version Check";
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "DWMarketVersionCheckController";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #18
0
        public HttpResponseMessage Post(ComUdtMemberItemPurchaseInputParams p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <ComUdtMemberItemPurchaseInputParams>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            // Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID(p.MemberID, this.User as ClaimsPrincipal);

            p.MemberID = sid;

            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);

            HttpResponseMessage response        = new HttpResponseMessage();
            EncryptedData       encryptedResult = new EncryptedData();
            RowcountResult      rowcountResult  = new RowcountResult();

            try
            {
                // task start log
                //logMessage.memberID = p.MemberID;
                //logMessage.Level = "INFO";
                //logMessage.Logger = "CBComUdtMemberItemPurchaseController";
                //logMessage.Message = jsonParam;
                //Logging.RunLog(logMessage);

                /// Database connection retry policy
                RetryPolicy retryPolicy = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(globalVal.conRetryCount, TimeSpan.FromSeconds(globalVal.conRetryFromSeconds));
                using (SqlConnection connection = new SqlConnection(globalVal.DBConnectionString))
                {
                    using (SqlCommand command = new SqlCommand("uspComUdtMemberItemPurchase", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@MemberItemPurchaseID", SqlDbType.NVarChar, -1).Value = p.MemberItemPurchaseID;
                        command.Parameters.Add("@MemberID", SqlDbType.NVarChar, -1).Value             = p.MemberID;
                        command.Parameters.Add("@ItemListID", SqlDbType.NVarChar, -1).Value           = p.ItemListID;
                        command.Parameters.Add("@PurchaseQuantity", SqlDbType.NVarChar, -1).Value     = p.PurchaseQuantity;
                        command.Parameters.Add("@PurchasePrice", SqlDbType.NVarChar, -1).Value        = p.PurchasePrice;
                        command.Parameters.Add("@PGinfo1", SqlDbType.NVarChar, -1).Value                        = p.PGinfo1;
                        command.Parameters.Add("@PGinfo2", SqlDbType.NVarChar, -1).Value                        = p.PGinfo2;
                        command.Parameters.Add("@PGinfo3", SqlDbType.NVarChar, -1).Value                        = p.PGinfo3;
                        command.Parameters.Add("@PGinfo4", SqlDbType.NVarChar, -1).Value                        = p.PGinfo4;
                        command.Parameters.Add("@PGinfo5", SqlDbType.NVarChar, -1).Value                        = p.PGinfo5;
                        command.Parameters.Add("@PurchaseDeviceID", SqlDbType.NVarChar, -1).Value               = p.PurchaseDeviceID;
                        command.Parameters.Add("@PurchaseDeviceIPAddress", SqlDbType.NVarChar, -1).Value        = p.PurchaseDeviceIPAddress;
                        command.Parameters.Add("@PurchaseDeviceMACAddress", SqlDbType.NVarChar, -1).Value       = p.PurchaseDeviceMACAddress;
                        command.Parameters.Add("@PurchaseDT", SqlDbType.NVarChar, -1).Value                     = p.PurchaseDT;
                        command.Parameters.Add("@PurchaseCancelYN", SqlDbType.NVarChar, -1).Value               = p.PurchaseCancelYN;
                        command.Parameters.Add("@PurchaseCancelDT", SqlDbType.NVarChar, -1).Value               = p.PurchaseCancelDT;
                        command.Parameters.Add("@PurchaseCancelingStatus", SqlDbType.NVarChar, -1).Value        = p.PurchaseCancelingStatus;
                        command.Parameters.Add("@PurchaseCancelReturnedAmount", SqlDbType.NVarChar, -1).Value   = p.PurchaseCancelReturnedAmount;
                        command.Parameters.Add("@PurchaseCancelDeviceID", SqlDbType.NVarChar, -1).Value         = p.PurchaseCancelDeviceID;
                        command.Parameters.Add("@PurchaseCancelDeviceIPAddress", SqlDbType.NVarChar, -1).Value  = p.PurchaseCancelDeviceIPAddress;
                        command.Parameters.Add("@PurchaseCancelDeviceMACAddress", SqlDbType.NVarChar, -1).Value = p.PurchaseCancelDeviceMACAddress;
                        command.Parameters.Add("@sCol1", SqlDbType.NVarChar, -1).Value  = p.sCol1;
                        command.Parameters.Add("@sCol2", SqlDbType.NVarChar, -1).Value  = p.sCol2;
                        command.Parameters.Add("@sCol3", SqlDbType.NVarChar, -1).Value  = p.sCol3;
                        command.Parameters.Add("@sCol4", SqlDbType.NVarChar, -1).Value  = p.sCol4;
                        command.Parameters.Add("@sCol5", SqlDbType.NVarChar, -1).Value  = p.sCol5;
                        command.Parameters.Add("@sCol6", SqlDbType.NVarChar, -1).Value  = p.sCol6;
                        command.Parameters.Add("@sCol7", SqlDbType.NVarChar, -1).Value  = p.sCol7;
                        command.Parameters.Add("@sCol8", SqlDbType.NVarChar, -1).Value  = p.sCol8;
                        command.Parameters.Add("@sCol9", SqlDbType.NVarChar, -1).Value  = p.sCol9;
                        command.Parameters.Add("@sCol10", SqlDbType.NVarChar, -1).Value = p.sCol10;

                        connection.OpenWithRetry(retryPolicy);
                        using (SqlDataReader dreader = command.ExecuteReaderWithRetry(retryPolicy))
                        {
                            while (dreader.Read())
                            {
                                rowcountResult.result = dreader[0].ToString();
                            }
                            dreader.Close();
                        }
                        connection.Close();

                        // task end log
                        logMessage.memberID = p.MemberID;
                        logMessage.Level    = "INFO";
                        logMessage.Logger   = "CBComUdtMemberItemPurchaseController";
                        logMessage.Message  = jsonParam;
                        Logging.RunLog(logMessage);

                        /// Encrypt the result response
                        if (globalVal.CloudBreadCryptSetting == "AES256")
                        {
                            try
                            {
                                encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(rowcountResult), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                                response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                                return(response);
                            }
                            catch (Exception ex)
                            {
                                ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                                throw ex;
                            }
                        }

                        response = Request.CreateResponse(HttpStatusCode.OK, rowcountResult);
                        return(response);
                    }
                }
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.MemberID;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBComUdtMemberItemPurchaseController";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
        public static bool AddGem(ref long gem, ref long cashGem, long addFreeGem, long addCashGem, Logging.CBLoggers logMessage)
        {
            if (long.MaxValue - gem < addFreeGem)
            {
                gem = long.MaxValue;
            }
            else
            {
                gem += addFreeGem;
            }

            if (long.MaxValue - cashGem < addCashGem)
            {
                cashGem = long.MaxValue;
            }
            else
            {
                cashGem += addCashGem;
            }

            logMessage.Message = string.Format("AddGem gem = {0}, cashGem = {1}, addFreeGem = {2}, addCashGem = {3}", gem, cashGem, addFreeGem, addCashGem);

            return(true);
        }
        public static bool SubEnhancedStone(ref long enhancedStone, ref long cashEnhancedStone, long subEnhancedStone, Logging.CBLoggers logMessage)
        {
            if (enhancedStone + cashEnhancedStone < subEnhancedStone)
            {
                return(false);
            }

            enhancedStone -= subEnhancedStone;

            if (enhancedStone < 0)
            {
                cashEnhancedStone += enhancedStone;
                enhancedStone      = 0;
            }

            logMessage.Message = string.Format("SubEnhancedStone enhancedStone = {0}, cashEnhancedStone = {1}, subEnhancedStone = {2}", enhancedStone, cashEnhancedStone, subEnhancedStone);

            return(true);
        }
        public HttpResponseMessage Post(SelLoginInfoInputParams p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <SelLoginInfoInputParams>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            // Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID(p.memberID, this.User as ClaimsPrincipal);

            p.memberID = sid;

            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);

            List <SelLoginInfoModel> result          = new List <SelLoginInfoModel>();
            HttpResponseMessage      response        = new HttpResponseMessage();
            EncryptedData            encryptedResult = new EncryptedData();

            try
            {
                // start task log
                //logMessage.memberID = p.memberID;
                //logMessage.Level = "INFO";
                //logMessage.Logger = "CBSelLoginInfoController";
                //logMessage.Message = jsonParam;
                //Logging.RunLog(logMessage);

                /// Database connection retry policy
                RetryPolicy retryPolicy = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(globalVal.conRetryCount, TimeSpan.FromSeconds(globalVal.conRetryFromSeconds));
                using (SqlConnection connection = new SqlConnection(globalVal.DBConnectionString))
                {
                    using (SqlCommand command = new SqlCommand("uspSelLoginInfo", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@MemberID", SqlDbType.NVarChar, -1).Value       = p.memberID;
                        command.Parameters.Add("@MemberPWD", SqlDbType.NVarChar, -1).Value      = p.memberPWD;
                        command.Parameters.Add("@LastDeviceID", SqlDbType.NVarChar, -1).Value   = p.memberPWD;
                        command.Parameters.Add("@LastIPaddress", SqlDbType.NVarChar, -1).Value  = p.memberPWD;
                        command.Parameters.Add("@LastMACAddress", SqlDbType.NVarChar, -1).Value = p.memberPWD;

                        connection.OpenWithRetry(retryPolicy);

                        using (SqlDataReader dreader = command.ExecuteReaderWithRetry(retryPolicy))
                        {
                            while (dreader.Read())
                            {
                                SelLoginInfoModel workItem = new SelLoginInfoModel()
                                {
                                    MemberID         = dreader[0].ToString(),
                                    MemberPWD        = dreader[1].ToString(),
                                    EmailAddress     = dreader[2].ToString(),
                                    EmailConfirmedYN = dreader[3].ToString(),
                                    PhoneNumber1     = dreader[4].ToString(),
                                    PhoneNumber2     = dreader[5].ToString(),
                                    PINumber         = dreader[6].ToString(),
                                    Name1            = dreader[7].ToString(),
                                    Name2            = dreader[8].ToString(),
                                    Name3            = dreader[9].ToString(),
                                    DOB                      = dreader[10].ToString(),
                                    RecommenderID            = dreader[11].ToString(),
                                    MemberGroup              = dreader[12].ToString(),
                                    LastDeviceID             = dreader[13].ToString(),
                                    LastIPaddress            = dreader[14].ToString(),
                                    LastLoginDT              = dreader[15].ToString(),
                                    LastLogoutDT             = dreader[16].ToString(),
                                    LastMACAddress           = dreader[17].ToString(),
                                    AccountBlockYN           = dreader[18].ToString(),
                                    AccountBlockEndDT        = dreader[19].ToString(),
                                    AnonymousYN              = dreader[20].ToString(),
                                    _3rdAuthProvider         = dreader[21].ToString(),
                                    _3rdAuthID               = dreader[22].ToString(),
                                    _3rdAuthParam            = dreader[23].ToString(),
                                    PushNotificationID       = dreader[24].ToString(),
                                    PushNotificationProvider = dreader[25].ToString(),
                                    PushNotificationGroup    = dreader[26].ToString(),
                                    sCol1                    = dreader[27].ToString(),
                                    sCol2                    = dreader[28].ToString(),
                                    sCol3                    = dreader[29].ToString(),
                                    sCol4                    = dreader[30].ToString(),
                                    sCol5                    = dreader[31].ToString(),
                                    sCol6                    = dreader[32].ToString(),
                                    sCol7                    = dreader[33].ToString(),
                                    sCol8                    = dreader[34].ToString(),
                                    sCol9                    = dreader[35].ToString(),
                                    sCol10                   = dreader[36].ToString()
                                };
                                result.Add(workItem);
                            }
                            dreader.Close();
                        }
                        connection.Close();

                        // end task log
                        logMessage.memberID = p.memberID;
                        logMessage.Level    = "INFO";
                        logMessage.Logger   = "CBSelLoginInfoController";
                        logMessage.Message  = jsonParam;
                        Logging.RunLog(logMessage);
                    }
                    /// Encrypt the result response
                    if (globalVal.CloudBreadCryptSetting == "AES256")
                    {
                        try
                        {
                            encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(result), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                            response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                            return(response);
                        }
                        catch (Exception ex)
                        {
                            ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                            throw ex;
                        }
                    }

                    response = Request.CreateResponse(HttpStatusCode.OK, result);
                    return(response);
                }
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.memberID;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBSelLoginInfoController";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #22
0
        public HttpResponseMessage Post(SelItem1InputParams p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <SelItem1InputParams>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            // Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID(p.MemberID, this.User as ClaimsPrincipal);

            p.MemberID = sid;

            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);

            List <SelItem1Model> result          = new List <SelItem1Model>();
            HttpResponseMessage  response        = new HttpResponseMessage();
            EncryptedData        encryptedResult = new EncryptedData();

            try
            {
                /// Database connection retry policy
                RetryPolicy retryPolicy = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(globalVal.conRetryCount, TimeSpan.FromSeconds(globalVal.conRetryFromSeconds));
                using (SqlConnection connection = new SqlConnection(globalVal.DBConnectionString))
                {
                    using (SqlCommand command = new SqlCommand("uspSelItem1", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@ItemListID", SqlDbType.NVarChar, -1).Value = p.ItemListID;
                        connection.OpenWithRetry(retryPolicy);

                        using (SqlDataReader dreader = command.ExecuteReaderWithRetry(retryPolicy))
                        {
                            while (dreader.Read())
                            {
                                SelItem1Model workItem = new SelItem1Model()
                                {
                                    ItemListID      = dreader[0].ToString(),
                                    ItemName        = dreader[1].ToString(),
                                    ItemDescription = dreader[2].ToString(),
                                    ItemPrice       = dreader[3].ToString(),
                                    ItemSellPrice   = dreader[4].ToString(),
                                    ItemCategory1   = dreader[5].ToString(),
                                    ItemCategory2   = dreader[6].ToString(),
                                    ItemCategory3   = dreader[7].ToString(),
                                    sCol1           = dreader[8].ToString(),
                                    sCol2           = dreader[9].ToString(),
                                    sCol3           = dreader[10].ToString(),
                                    sCol4           = dreader[11].ToString(),
                                    sCol5           = dreader[12].ToString(),
                                    sCol6           = dreader[13].ToString(),
                                    sCol7           = dreader[14].ToString(),
                                    sCol8           = dreader[15].ToString(),
                                    sCol9           = dreader[16].ToString(),
                                    sCol10          = dreader[17].ToString(),
                                };
                                result.Add(workItem);
                            }
                            dreader.Close();
                        }
                        connection.Close();
                    }

                    /// Encrypt the result response
                    if (globalVal.CloudBreadCryptSetting == "AES256")
                    {
                        try
                        {
                            encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(result), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                            response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                            return(response);
                        }
                        catch (Exception ex)
                        {
                            ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                            throw ex;
                        }
                    }

                    response = Request.CreateResponse(HttpStatusCode.OK, result);
                    return(response);
                }
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.MemberID;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBSelItem1Controller";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
Exemple #23
0
        public HttpResponseMessage Post(UdtGameEventMemberToItemInputParams p)
        {
            // try decrypt data
            if (!string.IsNullOrEmpty(p.token) && globalVal.CloudBreadCryptSetting == "AES256")
            {
                try
                {
                    string decrypted = Crypto.AES_decrypt(p.token, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                    p = JsonConvert.DeserializeObject <UdtGameEventMemberToItemInputParams>(decrypted);
                }
                catch (Exception ex)
                {
                    ex = (Exception)Activator.CreateInstance(ex.GetType(), "Decrypt Error", ex);
                    throw ex;
                }
            }

            // Get the sid or memberID of the current user.
            string sid = CBAuth.getMemberID(p.MemberID_MemberItems, this.User as ClaimsPrincipal);

            p.MemberID_MemberItems     = sid;
            p.MemberID_GameEventMember = sid;

            Logging.CBLoggers logMessage = new Logging.CBLoggers();
            string            jsonParam  = JsonConvert.SerializeObject(p);

            HttpResponseMessage response        = new HttpResponseMessage();
            EncryptedData       encryptedResult = new EncryptedData();
            RowcountResult      rowcountResult  = new RowcountResult();

            try
            {
                // start task log
                //logMessage.memberID = p.MemberID_MemberItems;
                //logMessage.Level = "INFO";
                //logMessage.Logger = "CBUdtGameEventMemberToItemController";
                //logMessage.Message = jsonParam;
                //Logging.RunLog(logMessage);

                /// Database connection retry policy
                RetryPolicy retryPolicy = new RetryPolicy <SqlAzureTransientErrorDetectionStrategy>(globalVal.conRetryCount, TimeSpan.FromSeconds(globalVal.conRetryFromSeconds));
                using (SqlConnection connection = new SqlConnection(globalVal.DBConnectionString))
                {
                    using (SqlCommand command = new SqlCommand("uspUdtGameEventMemberToItem", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add("@InsertORUpdate ", SqlDbType.NVarChar, -1).Value           = p.InsertORUpdate.ToUpper();
                        command.Parameters.Add("@MemberItemID_MemberItems ", SqlDbType.NVarChar, -1).Value = p.MemberItemID_MemberItems;
                        command.Parameters.Add("@MemberID_MemberItems", SqlDbType.NVarChar, -1).Value      = p.MemberID_MemberItems;
                        command.Parameters.Add("@ItemListID_MemberItems", SqlDbType.NVarChar, -1).Value    = p.ItemListID_MemberItems;
                        command.Parameters.Add("@ItemCount_MemberItems", SqlDbType.NVarChar, -1).Value     = p.ItemCount_MemberItems;
                        command.Parameters.Add("@ItemStatus_MemberItems", SqlDbType.NVarChar, -1).Value    = p.ItemStatus_MemberItems;
                        command.Parameters.Add("@sCol1_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol1_MemberItems;
                        command.Parameters.Add("@sCol2_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol2_MemberItems;
                        command.Parameters.Add("@sCol3_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol3_MemberItems;
                        command.Parameters.Add("@sCol4_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol4_MemberItems;
                        command.Parameters.Add("@sCol5_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol5_MemberItems;
                        command.Parameters.Add("@sCol6_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol6_MemberItems;
                        command.Parameters.Add("@sCol7_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol7_MemberItems;
                        command.Parameters.Add("@sCol8_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol8_MemberItems;
                        command.Parameters.Add("@sCol9_MemberItems", SqlDbType.NVarChar, -1).Value         = p.sCol9_MemberItems;
                        command.Parameters.Add("@sCol10_MemberItems", SqlDbType.NVarChar, -1).Value        = p.sCol10_MemberItems;
                        command.Parameters.Add("@eventID_GameEventMember", SqlDbType.NVarChar, -1).Value   = p.eventID_GameEventMember;
                        command.Parameters.Add("@MemberID_GameEventMember ", SqlDbType.NVarChar, -1).Value = p.MemberID_GameEventMember;
                        command.Parameters.Add("@sCol1_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol1_GameEventMember;
                        command.Parameters.Add("@sCol2_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol2_GameEventMember;
                        command.Parameters.Add("@sCol3_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol3_GameEventMember;
                        command.Parameters.Add("@sCol4_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol4_GameEventMember;
                        command.Parameters.Add("@sCol5_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol5_GameEventMember;
                        command.Parameters.Add("@sCol6_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol6_GameEventMember;
                        command.Parameters.Add("@sCol7_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol7_GameEventMember;
                        command.Parameters.Add("@sCol8_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol8_GameEventMember;
                        command.Parameters.Add("@sCol9_GameEventMember ", SqlDbType.NVarChar, -1).Value    = p.sCol9_GameEventMember;
                        command.Parameters.Add("@sCol10_GameEventMember ", SqlDbType.NVarChar, -1).Value   = p.sCol10_GameEventMember;

                        connection.OpenWithRetry(retryPolicy);
                        using (SqlDataReader dreader = command.ExecuteReaderWithRetry(retryPolicy))
                        {
                            while (dreader.Read())
                            {
                                rowcountResult.result = dreader[0].ToString();
                            }
                            dreader.Close();
                        }
                        connection.Close();

                        // end task log
                        logMessage.memberID = p.MemberID_MemberItems;
                        logMessage.Level    = "INFO";
                        logMessage.Logger   = "CBUdtGameEventMemberToItemController";
                        logMessage.Message  = jsonParam;
                        Logging.RunLog(logMessage);

                        /// Encrypt the result response
                        if (globalVal.CloudBreadCryptSetting == "AES256")
                        {
                            try
                            {
                                encryptedResult.token = Crypto.AES_encrypt(JsonConvert.SerializeObject(rowcountResult), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                                response = Request.CreateResponse(HttpStatusCode.OK, encryptedResult);
                                return(response);
                            }
                            catch (Exception ex)
                            {
                                ex = (Exception)Activator.CreateInstance(ex.GetType(), "Encrypt Error", ex);
                                throw ex;
                            }
                        }

                        response = Request.CreateResponse(HttpStatusCode.OK, rowcountResult);
                        return(response);
                    }
                }
            }

            catch (Exception ex)
            {
                // error log
                logMessage.memberID  = p.MemberID_MemberItems;
                logMessage.Level     = "ERROR";
                logMessage.Logger    = "CBUdtGameEventMemberToItemController";
                logMessage.Message   = jsonParam;
                logMessage.Exception = ex.ToString();
                Logging.RunLog(logMessage);

                throw;
            }
        }
        public static bool AddEnhancedStone(ref long enhancedStone, ref long cashEnhancedStone, long addFreeEnhancedStone, long addCashEnhancedStone, Logging.CBLoggers logMessage)
        {
            if (long.MaxValue - enhancedStone < addFreeEnhancedStone)
            {
                enhancedStone = long.MaxValue;
            }
            else
            {
                enhancedStone += addFreeEnhancedStone;
            }

            if (long.MaxValue - cashEnhancedStone < addCashEnhancedStone)
            {
                cashEnhancedStone = long.MaxValue;
            }
            else
            {
                cashEnhancedStone += addCashEnhancedStone;
            }

            logMessage.Message = string.Format("AddEnhancedStone enhancedStone = {0}, cashEnhancedStone = {1}, addFreeEnhancedStone = {2}, addCashEnhancedStone = {3}", enhancedStone, cashEnhancedStone, addFreeEnhancedStone, addCashEnhancedStone);

            return(true);
        }