Ejemplo n.º 1
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var pageIndex     = TryParseInt32(context, "page", false, 1);
            var pageSize      = TryParseInt32(context, "rows", false, 10);
            var sortIndex     = TryParseString(context, "sidx", false, "Name");
            var sortOrder     = TryParseString(context, "sord", false, "asc");
            var _search       = TryParseBoolean(context, "_search", false, false);
            var orderByClause = string.Format("order by {0} {1}", sortIndex, sortOrder);

            /*Φτιάχνουμε το Whereclause*/
            StringBuilder whereclause = new StringBuilder("where 1=1");

            if (_search == true)
            {
                if (!string.IsNullOrEmpty(context.Request.Params["RegisterDt"]))
                {
                    try
                    {
                        var _search_RegisterDt = TryParseDateTime(context, "RegisterDt", false, null, "dd/MM/yyyy");
                        //we want the datetime in ISO8601
                        whereclause.AppendFormat(" and RegisterDt >= '{0}'", accessToken.ConvertTimeToUtc(_search_RegisterDt.Value).ToString("s"));
                    }
                    catch
                    {
                    }
                }
                if (!string.IsNullOrEmpty(context.Request.Params["Name"]))
                {
                    var _search_ClientName = TryParseString(context, "Name", true);
                    whereclause.AppendFormat(" and upper(Name) like '%{0}%'", _search_ClientName.Replace("'", "''").ToUpperInvariant());
                }
                if (!string.IsNullOrEmpty(context.Request.Params["EmailAddress"]))
                {
                    var _search_EmailAddress = TryParseString(context, "EmailAddress", true);
                    whereclause.AppendFormat(" and upper(EmailAddress) like '%{0}%'", _search_EmailAddress.Replace("'", "''").ToUpperInvariant());
                }
                if (!string.IsNullOrEmpty(context.Request.Params["IsVerified"]))
                {
                    var _search_IsVerified = TryParseBoolean(context, "IsVerified", true);
                    if (_search_IsVerified)
                    {
                        whereclause.Append(" and IsVerified = 1");
                    }
                    else
                    {
                        whereclause.Append(" and IsVerified = 0");
                    }
                }
                if (!string.IsNullOrEmpty(context.Request.Params["IsOptedOut"]))
                {
                    var _search_IsOptedOut = TryParseBoolean(context, "IsOptedOut", true);
                    if (_search_IsOptedOut)
                    {
                        whereclause.Append(" and IsOptedOut = 1");
                    }
                    else
                    {
                        whereclause.Append(" and IsOptedOut = 0");
                    }
                }
                if (!string.IsNullOrEmpty(context.Request.Params["IsBounced"]))
                {
                    var _search_IsBounced = TryParseBoolean(context, "IsBounced", true);
                    if (_search_IsBounced)
                    {
                        whereclause.Append(" and IsBounced = 1");
                    }
                    else
                    {
                        whereclause.Append(" and IsBounced = 0");
                    }
                }
            }


            var systemManager = VLSystemManager.GetAnInstance(accessToken);

            int totalRecords = 0;
            var items        = systemManager.GetKnownEmailExs(pageIndex, pageSize, ref totalRecords, whereclause.ToString(), orderByClause);

            int totalpages = totalRecords / pageSize;

            if (totalpages * pageSize < totalRecords)
            {
                totalpages++;
            }


            var rows = items.Select(c => new
            {
                c.Client,
                c.EmailId,
                c.EmailAddress,
                c.LocalPart,
                c.DomainPart,
                c.RegisterDt,
                c.IsDomainOK,
                c.IsVerified,
                c.IsOptedOut,
                c.IsBounced,
                c.VerifiedDt,
                c.OptedOutDt,
                c.ClientName,
            }).ToArray();

            var data = new
            {
                total   = totalpages,   //total pages for the query
                page    = pageIndex,    //current page of the query
                records = totalRecords, //total number of records for the query
                rows
            };


            var response = JsonConvert.SerializeObject(data, Formatting.None);

            context.Response.Write(response);
        }
Ejemplo n.º 2
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var pageIndex = TryParseInt32(context, "page", false, 1);
            var pageSize  = TryParseInt32(context, "rows", false, 10);
            var sortIndex = TryParseString(context, "sidx", false, "Name");
            var sortOrder = TryParseString(context, "sord", false, "asc");

            /*Τραβάμε τα search criteria:*/
            //var _search_PrincipalType = TryParseByte(context, "PrincipalType", false);
            //var _search_ClientName = TryParseString(context, "ClientName", false);
            //var _search_User = TryParseString(context, "User", false);
            //var _search_LogOnToken = TryParseString(context, "LogOnToken", false);
            //var _search_EnterDt = TryParseString(context, "EnterDt", false);
            //var _search_LeaveDt = TryParseString(context, "LeaveDt", false);


            /*Φτιάχνουμε το OrderBy*/
            string orderByClause = string.Empty;

            if (sortIndex == "User")
            {
                orderByClause = string.Format("order by LastName {0}, FirstName {0}", sortOrder);
            }
            else
            {
                orderByClause = string.Format("order by {0} {1}", sortIndex, sortOrder);
            }
            /*Φτιάχνουμε το Whereclause*/
            StringBuilder whereclause = new StringBuilder("where 1=1");

            if (!string.IsNullOrEmpty(context.Request.Params["PrincipalType"]))
            {
                var _search_PrincipalType = (PrincipalType)TryParseByte(context, "PrincipalType", true);
                whereclause.AppendFormat(" and PrincipalType = {0}", ((byte)_search_PrincipalType).ToString(CultureInfo.InvariantCulture));
            }
            if (!string.IsNullOrEmpty(context.Request.Params["ClientName"]))
            {
                var _search_ClientName = TryParseString(context, "ClientName", true);
                whereclause.AppendFormat(" and upper(ClientName) like '%{0}%'", _search_ClientName.Replace("'", "''").ToUpperInvariant());
            }
            if (!string.IsNullOrEmpty(context.Request.Params["User"]))
            {
                var _search_User = TryParseString(context, "User", false);
                whereclause.AppendFormat(" and upper(LastName) like '%{0}%'", _search_User.Replace("'", "''").ToUpperInvariant());
            }
            if (!string.IsNullOrEmpty(context.Request.Params["LogOnToken"]))
            {
                var _search_LogOnToken = TryParseString(context, "LogOnToken", false);
                whereclause.AppendFormat(" and upper(LogOnToken) like '%{0}%'", _search_LogOnToken.Replace("'", "''").ToUpperInvariant());
            }
            if (!string.IsNullOrEmpty(context.Request.Params["EnterDt"]))
            {
                try
                {
                    var _search_EnterDt = TryParseDateTime(context, "EnterDt", false, null, "dd/MM/yyyy");
                    //we want the datetime in ISO8601
                    whereclause.AppendFormat(" and EnterDt>='{0}'", accessToken.ConvertTimeToUtc(_search_EnterDt.Value).ToString("s"));
                }
                catch
                {
                }
            }



            var systemManager = VLSystemManager.GetAnInstance(accessToken);

            int totalRecords = 0;
            var items        = systemManager.GetLogins(pageIndex, pageSize, ref totalRecords, whereclause.ToString(), orderByClause);

            int totalpages = totalRecords / pageSize;

            if (totalpages * pageSize < totalRecords)
            {
                totalpages++;
            }


            var rows = items.Select(c => new
            {
                c.LoginId,
                c.PrincipalType,
                c.Principal,
                c.ClientId,
                c.Language,
                c.Permissions,
                EnterDt = accessToken.ConvertTimeFromUtc(c.EnterDt),
                LeaveDt = c.LeaveDt.HasValue ? (DateTime?)accessToken.ConvertTimeFromUtc(c.LeaveDt.Value) : (DateTime?)null,
                c.IPAddress,
                c.TimeZoneId,
                c.IsOK,
                c.IsCleared,
                c.ClientName,
                c.FirstName,
                c.LastName,
                c.Email,
                c.Role,
                c.LogOnToken
            }).ToArray();

            var data = new
            {
                total   = totalpages,   //total pages for the query
                page    = pageIndex,    //current page of the query
                records = totalRecords, //total number of records for the query
                rows
            };


            var response = JsonConvert.SerializeObject(data, Formatting.None);

            context.Response.Write(response);
        }