Example #1
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            int CountryId = int.Parse(ddlAddCountries.SelectedValue);

            MinistryView.MinistryViewDataContext d = new MinistryView.MinistryViewDataContext();
            ssoGUID = UserInfo.Profile.GetPropertyValue("ssoGUID");
            var q = from c in d.MinistryView_UserCountryProfiles where c.GUID == ssoGUID && c.CountryId == CountryId select c;

            if (q.Count() > 0)
            {
                q.First().Username = tbUsername.Text;
                q.First().Password = AgapeEncryption.ADCEncrypt.Encrypt(tbPassword.Text);
            }
            else
            {
                var insert = new MinistryView.MinistryView_UserCountryProfile();
                insert.CountryId = CountryId;
                insert.Username  = tbUsername.Text;
                insert.Password  = AgapeEncryption.ADCEncrypt.Encrypt(tbPassword.Text);
                insert.GUID      = ssoGUID;
                d.MinistryView_UserCountryProfiles.InsertOnSubmit(insert);
                MyCountries.Items.Add(new ListItem(ddlAddCountries.SelectedItem.Text, "ADD" + insert.UserCountryProfileId));
            }
            d.SubmitChanges();

            MyCountries.SelectedIndex = MyCountries.Items.Count - 1;
            MyCountries_SelectedIndexChanged(this, null);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            openAddCountry.ToolTip = Translate("btnAddCountryTooltip");
            lblNew.Text = Translate("lblNew");
            _startDate = FirstDayOfMonthFromDateTime(DateTime.Today.AddMonths(-12));
            _endDate = LastDayOfMonthFromDateTime(DateTime.Today);

            if (!Page.IsPostBack)
            {
                //First Load Countries From Thads Search

               DSPU.DSPortalUsers dspus = new DSPU.DSPortalUsers();
                ssoGUID = UserInfo.Profile.GetPropertyValue("ssoGUID");
                var resp =  dspus.GetPortalsForUser("CASAUTH", "thecatsaysmeow3", ssoGUID);

                //DSPortalsService.DSPortalsSoapClient dsw = new DSPortalsService.DSPortalsSoapClient();

                //var resp = dsw.GetPortalsForUserJson(ssoGUID).Distinct();
                var thisInstance = StaffBrokerFunctions.GetSetting("DataserverURL", PortalId);
                if (String.IsNullOrEmpty(thisInstance)) thisInstance = "-unknownLocation";

                //    MyCountries.Items.Add(new ListItem("South Africa", "https://tntdataserver.com/dataserver/rsa/dataquery/dataqueryservice.asmx"));

                ////MyCountries.Items.Add(new ListItem("Bulgaria Test", "https://tntdataserver.eu/dataserver/bgr/dataquery/dataqueryservice.asmx"));

                foreach (var p in resp.OrderByDescending(x => x.PortalUri.Contains(thisInstance)).ThenBy(y => y.PortalName))
                {
                    MyCountries.Items.Add(new ListItem(p.PortalName, p.PortalUri));

                }

                MinistryView.MinistryViewDataContext dm = new MinistryView.MinistryViewDataContext();

                var addCountries = from c in dm.MinistryView_UserCountryProfiles where c.GUID == ssoGUID select new { c.UserCountryProfileId, c.MinistryView_AdditionalCountry.CountryName };
                foreach (var row in addCountries)
                {
                    MyCountries.Items.Add(new ListItem(row.CountryName, "ADD" + row.UserCountryProfileId));
                }

                //MyCountries.Items.Add(new ListItem("devtest","https://tntdataserver.eu/dataserver/devtest/dataquery/dataqueryservice.asmx"));
                //MyCountries.Items.Add(new ListItem("AgapeAOA","https://tntdataserver.eu/dataserver/AgapeAOA/dataquery/dataqueryservice.asmx"));

                ////

                if (MyCountries.Items.Count > 0)
                {
                    MyCountries_SelectedIndexChanged(this, null);
                    lblMessage.Visible = false;
                }
                else
                {
                    lblMessage.Text = Translate("lblMessage");
                    string Message = "No DataServer accounts for: " + UserInfo.DisplayName + "(" + UserId.ToString() + ") " + ssoGUID + "CountryCount:" + MyCountries.Items.Count.ToString() + ";" + (resp.Count()).ToString();
                    DotNetNuke.Services.Log.EventLog.EventLogController objEventLog = new DotNetNuke.Services.Log.EventLog.EventLogController();

                    objEventLog.AddLog("Accounts", Message, PortalSettings, UserId, Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT);

                    lblMessage.Visible = true;
                    accordion.Visible = false;
                    divBalance.Visible = false;
                    IncExpGraph.Visible = false;
                }

            }

            //   InitializeValues();
        }
        protected void MyCountries_SelectedIndexChanged(object sender, EventArgs e)
        {
            clearTables();
            if (MyCountries.Items.Count == 0)
                return;

            if (MyCountries.SelectedValue.StartsWith("ADD"))
            {

                //US don't load the typical API.
                MinistryView.MinistryViewDataContext dm = new MinistryView.MinistryViewDataContext();
                var p = from c in dm.MinistryView_UserCountryProfiles where c.UserCountryProfileId == int.Parse(MyCountries.SelectedValue.Replace("ADD", "")) select c;
                double? EndBal = MPD_Service.GetAccountBalance(p.First().Username, (AgapeEncryption.AgapeEncrypt.Decrypt(p.First().Password)), p.First().MinistryView_AdditionalCountry.ServiceURL, "TntBalance");
                if (EndBal != null)
                {
                    EndingBalance.Text = EndBal.Value.ToString("0");
                }

                List<MPD_Service.Donation> donations = MPD_Service.getDonations(p.First().Username, (AgapeEncryption.AgapeEncrypt.Decrypt(p.First().Password)), p.First().MinistryView_AdditionalCountry.ServiceURL, "TntDonList", _startDate, _endDate);

                var errors = donations.Where(x => x.PeopleId < 0);
                donations = donations.Where(x => x.PeopleId >= 0).ToList();

                foreach (var row in errors)
                {
                    switch (row.PeopleId)
                    {
                        case -1:
                            showError(row.DonorName, true);
                            //Open the login window?

                            return;

                        case -2:
                            showError(row.DonorName, true);
                            return;

                        case -3:
                            showError(row.DonorName, false);
                            break;
                        default:
                            break;

                    }
                }

                _googleGraph = "";
                var q = from c in donations
                        group c by new { c.FiscalPeriod, c.PeopleId } into g
                        orderby g.Key.FiscalPeriod, g.First().DonorName
                        select new { FiscalPeriod = g.Key.FiscalPeriod, Amount = g.Sum(o => (decimal)o.Amount), Name = g.First().DonorName, MonthName = g.First().MonthName, PeopleId = g.Key.PeopleId };

                // var q = from c in donations group c by c.FiscalPeriod into g select new {FiscalPeriod = g.Key, Amount = g.Sum(o=> Decimal.Parse( o.Amount)), MonthName = g.First().MonthName};
                DataTable dSummary = new DataTable();
                DataTable iSummary = new DataTable();

                dSummary.Columns.Add("Donor");
                iSummary.Columns.Add("Income");

                for (int index = 0; index < 13; index++)
                {
                    string monthName = GetMonth(index - 12);
                    var monthData = q.Where(x => x.MonthName == monthName);

                    _googleGraph += "data.addRow(['" + monthName + "', " + DecodeNumberString(monthData.Sum(x => x.Amount).ToString()) + ",,'',false,0,0]);" + Environment.NewLine;
                    dSummary.Columns.Add(monthName);
                    iSummary.Columns.Add(monthName);

                }

                var dnrs = (from c in donations orderby c.DonorName select new { c.PeopleId, c.DonorName }).GroupBy(x => x.PeopleId);
                int counter = 0;
                foreach (var dnr in dnrs)
                {
                    _donorCodes.Add(dnr.First().PeopleId.ToString(), Server.HtmlEncode(dnr.First().DonorName));

                    dSummary.Rows.Add();
                    var DonorData = q.Where(x => x.PeopleId == dnr.Key).Distinct();

                    dSummary.Rows[counter]["Donor"] = dnr.First().PeopleId;

                    foreach (var row in DonorData)
                    {

                        dSummary.Rows[counter][row.MonthName] = FormatNumber((double)(row.Amount));

                    }

                    counter++;
                }
                dSummary.Rows.Add();
                dSummary.Rows[counter]["Donor"] = "Total";
                iSummary.Rows.Add();
                iSummary.Rows[0]["Income"] = "Income";
                for (int index = 13; index > 0; index--)
                {
                    string monthName = GetMonth(index - 13);
                    var monthData = q.Where(x => x.MonthName == monthName);
                    dSummary.Rows[counter][monthName] = FormatNumber((double)(monthData.Sum(x => x.Amount)));
                    iSummary.Rows[0][monthName] = FormatNumber((double)(monthData.Sum(x => x.Amount)));

                }

                gvDonationSummary.DataSource = dSummary;
                gvDonationSummary.DataBind();
                gvIncome.DataSource = iSummary;
                gvIncome.DataBind();

                SetColumnWidth(ref gvIncome, System.Drawing.Color.Blue, true);

                SetColumnWidth(ref gvDonationSummary, System.Drawing.Color.Black);

                lblDonationOnly.Visible = true;

                string data = "[";

                foreach (var transaction in donations)
                {

                    data += @"{""AC"": """ + transaction.PeopleId + @""","
                         + @"""Am"": """ + (transaction.Amount) + @""","
                         + @"""De"": """ + Server.HtmlEncode(System.Text.RegularExpressions.Regex.Replace(transaction.DonorName, @"\r\n?|\n", " ")) + @""","
                          + @"""Me"": """ + Server.HtmlEncode(System.Text.RegularExpressions.Regex.Replace(transaction.Payment_Method, @"\r\n?|\n", " ")) + @""","

                         + @"""Dt"": """ + transaction.DonationDate.ToShortDateString() + @""","
                         + @"""Pe"": """ + transaction.DonationDate.Year + " - " + transaction.DonationDate.Month + @"""}," + Environment.NewLine;

                }

                data = data.TrimEnd('\r', '\n', ',');
                hfTransactions.Value = data + "]";

                return;
            }

            if (dTnT.Url != MyCountries.SelectedValue)
            {
                dTnT.Url = MyCountries.SelectedValue;
                dTnT.Discover();
            }
            string sessionId = (string)Session["TnT-" + MyCountries.SelectedItem.Text];
            if (string.IsNullOrEmpty(sessionId))
            {

                string service = dTnT.GetServiceName();//"https://tntdataserver.eu/dataserver/uk/dataquery/DataQueryService2.asmx";
                string pt = getPT(service);
                string UserName;
                bool IsReg;
                try
                {
                    sessionId = dTnT.Login(service, pt, true, out UserName, out IsReg);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("facebook"))
                    {

                        Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.LoginTabId) + "?returnurl=" + DotNetNuke.Common.Globals.NavigateURL() + "&renew=true");

                    }
                    throw;
                }

                Session.Add("TnT-" + MyCountries.SelectedItem.Text, sessionId);
            }
            try
            {
                var Profiles = from c in dTnT.GetStaffProfiles(sessionId) orderby c.Code == "" descending, c.Code ascending select c;

                MyProfiles.DataSource = Profiles;
                MyProfiles.DataTextField = "Description";
                MyProfiles.DataValueField = "Code";

                MyProfiles.DataBind();
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("The session has expired."))
                {

                    Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.LoginTabId) + "?returnurl=" + DotNetNuke.Common.Globals.NavigateURL() + "&renew=true");
                }
                throw;
            }

            if (MyProfiles.Items.Count > 0) MyProfiles.SelectedIndex = 0;
            else MyProfiles.ClearSelection();

            MyProfiles.Enabled = true;
            MyAccounts.Enabled = true;
            lblDonationOnly.Visible = false;

            MyProfiles_SelectedIndexChanged(this, null);
        }
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            int CountryId = int.Parse(ddlAddCountries.SelectedValue);
            MinistryView.MinistryViewDataContext d = new MinistryView.MinistryViewDataContext();
            ssoGUID = UserInfo.Profile.GetPropertyValue("ssoGUID");
            var q = from c in d.MinistryView_UserCountryProfiles where c.GUID == ssoGUID && c.CountryId == CountryId select c;

            if (q.Count() > 0)
            {
                q.First().Username = tbUsername.Text;
                q.First().Password = AgapeEncryption.ADCEncrypt.Encrypt(tbPassword.Text);
            }
            else
            {
                var insert = new MinistryView.MinistryView_UserCountryProfile();
                insert.CountryId = CountryId;
                insert.Username = tbUsername.Text;
                insert.Password = AgapeEncryption.ADCEncrypt.Encrypt(tbPassword.Text);
                insert.GUID = ssoGUID;
                d.MinistryView_UserCountryProfiles.InsertOnSubmit(insert);
                MyCountries.Items.Add(new ListItem(ddlAddCountries.SelectedItem.Text, "ADD" + insert.UserCountryProfileId));
            }
            d.SubmitChanges();

            MyCountries.SelectedIndex = MyCountries.Items.Count - 1;
            MyCountries_SelectedIndexChanged(this, null);
        }
Example #5
0
        protected void MyCountries_SelectedIndexChanged(object sender, EventArgs e)
        {
            clearTables();
            if (MyCountries.Items.Count == 0)
            {
                return;
            }

            if (MyCountries.SelectedValue.StartsWith("ADD"))
            {
                //US don't load the typical API.
                MinistryView.MinistryViewDataContext dm = new MinistryView.MinistryViewDataContext();
                var    p      = from c in dm.MinistryView_UserCountryProfiles where c.UserCountryProfileId == int.Parse(MyCountries.SelectedValue.Replace("ADD", "")) select c;
                double?EndBal = MPD_Service.GetAccountBalance(p.First().Username, (AgapeEncryption.AgapeEncrypt.Decrypt(p.First().Password)), p.First().MinistryView_AdditionalCountry.ServiceURL, "TntBalance");
                if (EndBal != null)
                {
                    EndingBalance.Text = EndBal.Value.ToString("0");
                }



                List <MPD_Service.Donation> donations = MPD_Service.getDonations(p.First().Username, (AgapeEncryption.AgapeEncrypt.Decrypt(p.First().Password)), p.First().MinistryView_AdditionalCountry.ServiceURL, "TntDonList", _startDate, _endDate);

                var errors = donations.Where(x => x.PeopleId < 0);
                donations = donations.Where(x => x.PeopleId >= 0).ToList();

                foreach (var row in errors)
                {
                    switch (row.PeopleId)
                    {
                    case -1:
                        showError(row.DonorName, true);
                        //Open the login window?

                        return;

                    case -2:
                        showError(row.DonorName, true);
                        return;

                    case -3:
                        showError(row.DonorName, false);
                        break;

                    default:
                        break;
                    }
                }

                _googleGraph = "";
                var q = from c in donations
                        group c by new { c.FiscalPeriod, c.PeopleId } into g
                orderby g.Key.FiscalPeriod, g.First().DonorName
                    select new { FiscalPeriod = g.Key.FiscalPeriod, Amount = g.Sum(o => (decimal)o.Amount), Name = g.First().DonorName, MonthName = g.First().MonthName, PeopleId = g.Key.PeopleId };



                // var q = from c in donations group c by c.FiscalPeriod into g select new {FiscalPeriod = g.Key, Amount = g.Sum(o=> Decimal.Parse( o.Amount)), MonthName = g.First().MonthName};
                DataTable dSummary = new DataTable();
                DataTable iSummary = new DataTable();

                dSummary.Columns.Add("Donor");
                iSummary.Columns.Add("Income");


                for (int index = 0; index < 13; index++)
                {
                    string monthName = GetMonth(index - 12);
                    var    monthData = q.Where(x => x.MonthName == monthName);

                    _googleGraph += "data.addRow(['" + monthName + "', " + DecodeNumberString(monthData.Sum(x => x.Amount).ToString()) + ",,'',false,0,0]);" + Environment.NewLine;
                    dSummary.Columns.Add(monthName);
                    iSummary.Columns.Add(monthName);
                }

                var dnrs    = (from c in donations orderby c.DonorName select new { c.PeopleId, c.DonorName }).GroupBy(x => x.PeopleId);
                int counter = 0;
                foreach (var dnr in dnrs)
                {
                    _donorCodes.Add(dnr.First().PeopleId.ToString(), Server.HtmlEncode(dnr.First().DonorName));


                    dSummary.Rows.Add();
                    var DonorData = q.Where(x => x.PeopleId == dnr.Key).Distinct();


                    dSummary.Rows[counter]["Donor"] = dnr.First().PeopleId;


                    foreach (var row in DonorData)
                    {
                        dSummary.Rows[counter][row.MonthName] = FormatNumber((double)(row.Amount));
                    }

                    counter++;
                }
                dSummary.Rows.Add();
                dSummary.Rows[counter]["Donor"] = "Total";
                iSummary.Rows.Add();
                iSummary.Rows[0]["Income"] = "Income";
                for (int index = 13; index > 0; index--)
                {
                    string monthName = GetMonth(index - 13);
                    var    monthData = q.Where(x => x.MonthName == monthName);
                    dSummary.Rows[counter][monthName] = FormatNumber((double)(monthData.Sum(x => x.Amount)));
                    iSummary.Rows[0][monthName]       = FormatNumber((double)(monthData.Sum(x => x.Amount)));
                }


                gvDonationSummary.DataSource = dSummary;
                gvDonationSummary.DataBind();
                gvIncome.DataSource = iSummary;
                gvIncome.DataBind();

                SetColumnWidth(ref gvIncome, System.Drawing.Color.Blue, true);

                SetColumnWidth(ref gvDonationSummary, System.Drawing.Color.Black);



                lblDonationOnly.Visible = true;

                string data = "[";

                foreach (var transaction in donations)
                {
                    data += @"{""AC"": """ + transaction.PeopleId + @""","
                            + @"""Am"": """ + (transaction.Amount) + @""","
                            + @"""De"": """ + Server.HtmlEncode(System.Text.RegularExpressions.Regex.Replace(transaction.DonorName, @"\r\n?|\n", " ")) + @""","
                            + @"""Me"": """ + Server.HtmlEncode(System.Text.RegularExpressions.Regex.Replace(transaction.Payment_Method, @"\r\n?|\n", " ")) + @""","

                            + @"""Dt"": """ + transaction.DonationDate.ToShortDateString() + @""","
                            + @"""Pe"": """ + transaction.DonationDate.Year + " - " + transaction.DonationDate.Month + @"""}," + Environment.NewLine;
                }



                data = data.TrimEnd('\r', '\n', ',');
                hfTransactions.Value = data + "]";



                return;
            }


            if (dTnT.Url != MyCountries.SelectedValue)
            {
                dTnT.Url = MyCountries.SelectedValue;
                dTnT.Discover();
            }
            string sessionId = (string)Session["TnT-" + MyCountries.SelectedItem.Text];

            if (string.IsNullOrEmpty(sessionId))
            {
                string service = dTnT.GetServiceName();//"https://tntdataserver.eu/dataserver/uk/dataquery/DataQueryService2.asmx";
                string pt      = getPT(service);
                string UserName;
                bool   IsReg;
                try
                {
                    sessionId = dTnT.Login(service, pt, true, out UserName, out IsReg);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("facebook"))
                    {
                        Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.LoginTabId) + "?returnurl=" + DotNetNuke.Common.Globals.NavigateURL() + "&renew=true");
                    }
                    throw;
                }



                Session.Add("TnT-" + MyCountries.SelectedItem.Text, sessionId);
            }
            try
            {
                var Profiles = from c in dTnT.GetStaffProfiles(sessionId) orderby c.Code == "" descending, c.Code ascending select c;

                MyProfiles.DataSource     = Profiles;
                MyProfiles.DataTextField  = "Description";
                MyProfiles.DataValueField = "Code";

                MyProfiles.DataBind();
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("The session has expired."))
                {
                    Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.LoginTabId) + "?returnurl=" + DotNetNuke.Common.Globals.NavigateURL() + "&renew=true");
                }
                throw;
            }



            if (MyProfiles.Items.Count > 0)
            {
                MyProfiles.SelectedIndex = 0;
            }
            else
            {
                MyProfiles.ClearSelection();
            }

            MyProfiles.Enabled      = true;
            MyAccounts.Enabled      = true;
            lblDonationOnly.Visible = false;



            MyProfiles_SelectedIndexChanged(this, null);
        }
Example #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            openAddCountry.ToolTip = Translate("btnAddCountryTooltip");
            lblNew.Text            = Translate("lblNew");
            _startDate             = FirstDayOfMonthFromDateTime(DateTime.Today.AddMonths(-12));
            _endDate = LastDayOfMonthFromDateTime(DateTime.Today);


            if (!Page.IsPostBack)
            {
                //First Load Countries From Thads Search

                DSPU.DSPortalUsers dspus = new DSPU.DSPortalUsers();
                ssoGUID = UserInfo.Profile.GetPropertyValue("ssoGUID");
                var resp = dspus.GetPortalsForUser("CASAUTH", "thecatsaysmeow3", ssoGUID);



                //DSPortalsService.DSPortalsSoapClient dsw = new DSPortalsService.DSPortalsSoapClient();

                //var resp = dsw.GetPortalsForUserJson(ssoGUID).Distinct();
                var thisInstance = StaffBrokerFunctions.GetSetting("DataserverURL", PortalId);
                if (String.IsNullOrEmpty(thisInstance))
                {
                    thisInstance = "-unknownLocation";
                }


                //    MyCountries.Items.Add(new ListItem("South Africa", "https://tntdataserver.com/dataserver/rsa/dataquery/dataqueryservice.asmx"));

                ////MyCountries.Items.Add(new ListItem("Bulgaria Test", "https://tntdataserver.eu/dataserver/bgr/dataquery/dataqueryservice.asmx"));

                foreach (var p in resp.OrderByDescending(x => x.PortalUri.Contains(thisInstance)).ThenBy(y => y.PortalName))
                {
                    MyCountries.Items.Add(new ListItem(p.PortalName, p.PortalUri));
                }

                MinistryView.MinistryViewDataContext dm = new MinistryView.MinistryViewDataContext();

                var addCountries = from c in dm.MinistryView_UserCountryProfiles where c.GUID == ssoGUID select new { c.UserCountryProfileId, c.MinistryView_AdditionalCountry.CountryName };
                foreach (var row in addCountries)
                {
                    MyCountries.Items.Add(new ListItem(row.CountryName, "ADD" + row.UserCountryProfileId));
                }



                //MyCountries.Items.Add(new ListItem("devtest","https://tntdataserver.eu/dataserver/devtest/dataquery/dataqueryservice.asmx"));
                //MyCountries.Items.Add(new ListItem("AgapeAOA","https://tntdataserver.eu/dataserver/AgapeAOA/dataquery/dataqueryservice.asmx"));



                ////

                if (MyCountries.Items.Count > 0)
                {
                    MyCountries_SelectedIndexChanged(this, null);
                    lblMessage.Visible = false;
                }
                else
                {
                    lblMessage.Text = Translate("lblMessage");
                    string Message = "No DataServer accounts for: " + UserInfo.DisplayName + "(" + UserId.ToString() + ") " + ssoGUID + "CountryCount:" + MyCountries.Items.Count.ToString() + ";" + (resp.Count()).ToString();
                    DotNetNuke.Services.Log.EventLog.EventLogController objEventLog = new DotNetNuke.Services.Log.EventLog.EventLogController();

                    objEventLog.AddLog("Accounts", Message, PortalSettings, UserId, Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT);

                    lblMessage.Visible  = true;
                    accordion.Visible   = false;
                    divBalance.Visible  = false;
                    IncExpGraph.Visible = false;
                }
            }



            //   InitializeValues();
        }