/// <summary> /// This action returns list of user activities /// </summary> /// <returns></returns> public ActionResult GetClientRecentActivityDetails() { try { if (SessionManagement.UserInfo != null) { LoginInformation loginInfo = SessionManagement.UserInfo; var lstUserActivities = new List <UserActivityModel>(); //Get latest activities var activities = usrActivityBO.GetUserRecentActivityDetails(loginInfo.UserID); //Set IsSeen true for new activities if any usrActivityBO.MarkSeenRecentActivity(loginInfo.UserID); foreach (var act in activities) { var usrAct = new UserActivityModel(); usrAct.ActivityTimestamp = Convert.ToDateTime(act.Timestamp).ToString("dd/MM/yyyy HH:mm:ss tt"); usrAct.IsSeen = (bool)act.IsSeen; //Profile Activities if (act.FK_ActivityTypeID == (int)ActivityType.ProfileActivity) { usrAct.ActivityDetails = act.ProfileActivities.FirstOrDefault().ProfileActivityDetails; } //Document activities else if (act.FK_ActivityTypeID == (int)ActivityType.DocumentActivity) { usrAct.ActivityDetails = "<a href=Document>" + act.DocumentActivities.FirstOrDefault().Document.DocumentName + "</a>" + " document status has changed to <i>" + act.DocumentActivities.FirstOrDefault().DocumentStatus + "</i>."; } //Account activities else if (act.FK_ActivityTypeID == (int)ActivityType.AccountActivity) { //New acc creation activity if (act.AccountActivities.FirstOrDefault().FK_AccActivityTypeID == (int)AccountActivityType.NewAccountCreation) { //If account number is present if (act.AccountActivities.FirstOrDefault().FK_ClientAccountID != null) { //If landing acc if (act.AccountActivities.FirstOrDefault().AccountType == "Landing") { usrAct.ActivityDetails = "A new " + act.AccountActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + " " + act.AccountActivities.FirstOrDefault().AccountType + " <a href='MyAccount'>" + act.AccountActivities.FirstOrDefault() .Client_Account.LandingAccount + "</a> account has been created."; } else { usrAct.ActivityDetails = "A new " + act.AccountActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + " " + act.AccountActivities.FirstOrDefault().AccountType + " <a href='MyAccount'>" + act.AccountActivities.FirstOrDefault() .Client_Account.TradingAccount + "</a> account has been created."; } } else { usrAct.ActivityDetails = "A new " + act.AccountActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + " " + act.AccountActivities.FirstOrDefault().AccountType + " account has been created."; } } } //Transfer activities else if (act.FK_ActivityTypeID == (int)ActivityType.TransferActivity) { if (act.TransferActivities.FirstOrDefault().TransferStatus == Constants.K_STATUS_TRANSFERRED) { if (act.TransferActivities.FirstOrDefault().FK_FromUserID == null && act.TransferActivities.FirstOrDefault().FK_ToUserID == null) { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.TransferActivities.FirstOrDefault() .TransferAmount, "") + " " + act.TransferActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been transferred from account <a href='MyAccount'>" + act.TransferActivities.FirstOrDefault().FromAccount + "</a> to <a href='MyAccount'>" + act.TransferActivities.FirstOrDefault().ToAccount + "</a>."; } else if (act.TransferActivities.FirstOrDefault().FK_FromUserID != null) { string fromClientName = String.Empty; if ( userBO.GetUserDetails( (int)act.TransferActivities.FirstOrDefault().FK_FromUserID) != null) { fromClientName = clientBO.GetClientName( (int)act.TransferActivities.FirstOrDefault().FK_FromUserID); } else { fromClientName = introducingBrokerBO.GetPartnerName( (int)act.TransferActivities.FirstOrDefault().FK_FromUserID); } usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.TransferActivities.FirstOrDefault() .TransferAmount, "") + " " + act.TransferActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been deposited from " + fromClientName + " to <a href='MyAccount'>" + act.TransferActivities.FirstOrDefault().ToAccount + "</a>."; } else if (act.TransferActivities.FirstOrDefault().FK_ToUserID != null) { string toClientName = String.Empty; if ( userBO.GetUserDetails((int)act.TransferActivities.FirstOrDefault().FK_ToUserID) != null) { toClientName = clientBO.GetClientName( (int)act.TransferActivities.FirstOrDefault().FK_ToUserID); } else { toClientName = introducingBrokerBO.GetPartnerName( (int)act.TransferActivities.FirstOrDefault().FK_ToUserID); } usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.TransferActivities.FirstOrDefault() .TransferAmount, "") + " " + act.TransferActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been transferred from account <a href='MyAccount'>" + act.TransferActivities.FirstOrDefault().FromAccount + "</a> to " + toClientName + "."; } } else { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.TransferActivities.FirstOrDefault() .TransferAmount, "") + " " + act.TransferActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> is pending transfer from account <a href='MyAccount'>" + act.TransferActivities.FirstOrDefault().FromAccount + "</a> to <a href='MyAccount'>" + act.TransferActivities.FirstOrDefault().ToAccount + "</a>."; } } //Conversion activities else if (act.FK_ActivityTypeID == (int)ActivityType.ConversionActivity) { if (act.ConversionActivities.FirstOrDefault().ConversionStatus == Constants.K_STATUS_TRANSFERRED) { if (act.ConversionActivities.FirstOrDefault().FK_FromUserID == null && act.ConversionActivities.FirstOrDefault().FK_ToUserID == null) { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (int)act.ConversionActivities.FirstOrDefault() .ConversionAmount, "") + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been converted from <a href='MyAccount'>" + act.ConversionActivities.FirstOrDefault().FromAccount + "</a> at an exchange rate of " + act.ConversionActivities.FirstOrDefault().ExchangeRate + " totaling <b>" + Math.Round( Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ConversionAmount) * Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ExchangeRate), 2) + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue1.CurrencyValue + "</b> and transferred to <a href='MyAccount'>" + act.ConversionActivities.FirstOrDefault().ToAccount + "</a>."; } else if (act.ConversionActivities.FirstOrDefault().FK_FromUserID != null) { string fromClientName = String.Empty; if ( userBO.GetUserDetails( (int)act.ConversionActivities.FirstOrDefault().FK_FromUserID) != null) { fromClientName = clientBO.GetClientName( (int)act.ConversionActivities.FirstOrDefault().FK_FromUserID); } else { fromClientName = introducingBrokerBO.GetPartnerName( (int)act.ConversionActivities.FirstOrDefault().FK_FromUserID); } usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (int)act.ConversionActivities.FirstOrDefault() .ConversionAmount, "") + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been converted from " + fromClientName + " at an exchange rate of " + act.ConversionActivities.FirstOrDefault().ExchangeRate + " totaling <b>" + Math.Round( Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ConversionAmount) * Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ExchangeRate), 2) + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue1.CurrencyValue + "</b> and transferred to <a href='MyAccount'>" + act.ConversionActivities.FirstOrDefault().ToAccount + "</a>."; } else if (act.ConversionActivities.FirstOrDefault().FK_ToUserID != null) { string toClientName = String.Empty; if ( userBO.GetUserDetails( (int)act.ConversionActivities.FirstOrDefault().FK_ToUserID) != null) { toClientName = clientBO.GetClientName( (int)act.ConversionActivities.FirstOrDefault().FK_ToUserID); } else { toClientName = introducingBrokerBO.GetPartnerName( (int)act.ConversionActivities.FirstOrDefault().FK_ToUserID); } usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.ConversionActivities.FirstOrDefault() .ConversionAmount, "") + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been converted from <a href='MyAccount'>" + act.ConversionActivities.FirstOrDefault().FromAccount + "</a> at an exchange rate of " + act.ConversionActivities.FirstOrDefault().ExchangeRate + " totaling <b>" + Math.Round( Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ConversionAmount) * Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ExchangeRate), 2) + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue1.CurrencyValue + "</b> and transferred to " + toClientName + "."; } } else { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (int)act.ConversionActivities.FirstOrDefault() .ConversionAmount, "") + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been converted from <a href='MyAccount'>" + act.ConversionActivities.FirstOrDefault().FromAccount + "</a> at an exchange rate of " + act.ConversionActivities.FirstOrDefault().ExchangeRate + " totaling <b>" + Math.Round( Convert.ToDecimal( act.ConversionActivities.FirstOrDefault() .ConversionAmount) * Convert.ToDecimal( act.ConversionActivities.FirstOrDefault().ExchangeRate), 2) + " " + act.ConversionActivities.FirstOrDefault() .L_CurrencyValue1.CurrencyValue + "</b> and is pending transfer to <a href='MyAccount'>" + act.ConversionActivities.FirstOrDefault().ToAccount + "</a>."; } } //Fund or withdraw activities else if (act.FK_ActivityTypeID == (int)ActivityType.DepositOrWithdrawActivity) { if (act.DepositOrWithdrawActivities.FirstOrDefault().TransferStatus == Constants.K_STATUS_PENDING) { if (act.DepositOrWithdrawActivities.FirstOrDefault().Type == Constants.K_DEPOSIT) { usrAct.ActivityDetails = "You have submitted a deposit of <b>" + Utility.FormatCurrencyValue( (decimal)act.DepositOrWithdrawActivities .FirstOrDefault().Amount, "") + " " + act.DepositOrWithdrawActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b>."; } else { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.DepositOrWithdrawActivities .FirstOrDefault().Amount, "") + " " + act.DepositOrWithdrawActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> have been withdrawn from <a href='MyAccount'>" + act.DepositOrWithdrawActivities.FirstOrDefault() .AccountNumber + "</a> and is pending transfer to " + act.DepositOrWithdrawActivities.FirstOrDefault() .BankAccountInformation.BankName + "."; } } else { if (act.DepositOrWithdrawActivities.FirstOrDefault().Type == Constants.K_DEPOSIT) { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.DepositOrWithdrawActivities .FirstOrDefault().Amount, "") + " " + act.DepositOrWithdrawActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> has been received and deposited into <a href='MyAccount'>" + act.DepositOrWithdrawActivities.FirstOrDefault() .AccountNumber + "</a>."; } else { usrAct.ActivityDetails = "<b>" + Utility.FormatCurrencyValue( (decimal)act.DepositOrWithdrawActivities .FirstOrDefault().Amount, "") + " " + act.DepositOrWithdrawActivities.FirstOrDefault() .L_CurrencyValue.CurrencyValue + "</b> have been withdrawn from <a href='MyAccount'>" + act.DepositOrWithdrawActivities.FirstOrDefault() .AccountNumber + "</a> and transferred to " + act.DepositOrWithdrawActivities.FirstOrDefault() .BankAccountInformation.BankName + "."; } } } lstUserActivities.Add(usrAct); } return(Json(new { total = 1, page = 1, records = lstUserActivities.Count, rows = lstUserActivities }, JsonRequestBehavior.AllowGet)); } else { return(RedirectToAction("Login", "Account")); } } catch (Exception ex) { CurrentDeskLog.Error(ex.Message, ex); return(View("ErrorMessage")); } }