Ejemplo n.º 1
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var contactId = TryParseInt32(context, "contactId", true);

            var systemManager = VLSystemManager.GetAnInstance(accessToken);
            var contact       = systemManager.GetContactById(contactId);

            if (contact == null)
            {
                throw new VLException(string.Format("There is no Contact with id='{0}'.", contactId));
            }

            var _item = new
            {
                contact.ClientId,
                contact.ListId,
                contact.ContactId,
                contact.Organization,
                contact.Title,
                contact.Department,
                contact.FirstName,
                contact.LastName,
                contact.Email,
                contact.Comment,
                contact.IsOptedOut,
                contact.IsBouncedEmail,
                CreateDT     = accessToken.ConvertTimeFromUtc(contact.CreateDT).ToString(Utilities.DateTime_Format_General),
                LastUpdateDT = accessToken.ConvertTimeFromUtc(contact.LastUpdateDT).ToString(Utilities.DateTime_Format_General)
            };

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

            context.Response.Write(response);
        }
Ejemplo n.º 2
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var surveyId  = TryParseInt32(context, "surveyId", true);
                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 manager = VLSurveyManager.GetAnInstance(accessToken);

                int totalRecords = 0;
                var items        = manager.GetCollectors(surveyId, pageIndex, pageSize, ref totalRecords);

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


                var rows = items.Select(c => new
                {
                    c.CollectorId,
                    c.Survey,
                    c.CollectorType,
                    c.Name,
                    c.AttributeFlags,
                    c.Status,
                    c.Responses,
                    c.SupportedLanguagesIds,
                    c.PrimaryLanguage,
                    c.TextsLanguage,
                    c.CreditType,
                    CreateDT     = accessToken.ConvertTimeFromUtc(c.CreateDT).ToString(Utilities.DateTime_Format_Human),
                    LastUpdateDT = accessToken.ConvertTimeFromUtc(c.LastUpdateDT).ToString(Utilities.DateTime_Format_Human)
                }).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);
            }
            catch
            {
                throw;
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var collectorId = TryParseInt32(context, "collectorId", true);
                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 manager = VLSurveyManager.GetAnInstance(accessToken);

                int totalRecords = 0;
                var items        = manager.GetNonDraftMessages(collectorId, pageIndex, pageSize, ref totalRecords, string.Empty);

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



                var rows = items.Select(c => new
                {
                    c.Collector,
                    c.MessageId,
                    c.Sender,
                    c.Status,
                    c.IsDeliveryMethodOK,
                    c.IsSenderOK,
                    c.IsContentOK,
                    c.IsScheduleOK,
                    ScheduledAt = c.ScheduledAt.HasValue ? accessToken.ConvertTimeFromUtc(c.ScheduledAt.Value).ToString(Utilities.DateTime_Format_Human, CultureInfo.InvariantCulture) : null,
                    c.SentCounter,
                    c.FailedCounter,
                    c.SkipCounter,
                    c.DeliveryMethod,
                    c.Subject
                }).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);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var listId    = TryParseInt32(context, "listId", true);
            var pageIndex = TryParseInt32(context, "page", false, 1);
            var pageSize  = TryParseInt32(context, "rows", false, 10);

            var sortIndex = TryParseString(context, "sidx", false, "Email");
            {
                #region check value

                /*
                 * To  sortIndex πρέπει να ειναι η ονομασία ενός απο τα Public Properties του anonymous type που στέλνουμε σαν απάντηση:
                 * ClientId, ListId, ContactId, Organization, Title, FirstName, LastName, Email, IsOptedOut, IsBouncedEmail, CreationDT:
                 *
                 */
                bool isok = false;
                foreach (var item in whitelist)
                {
                    if (item.Equals(sortIndex, System.StringComparison.OrdinalIgnoreCase))
                    {
                        isok = true;
                    }
                }
                if (!isok)
                {
                    throw new ArgumentException(string.Format("Parameter's value is invalid. value = '{0}'.", sortIndex.Replace("'", "''")), "sortIndex");
                }
                #endregion
            }
            var sortOrder = TryParseString(context, "sord", false, "asc");
            {
                #region check value
                if (!sortOrder.Equals("asc", StringComparison.OrdinalIgnoreCase) && !sortOrder.Equals("desc", StringComparison.OrdinalIgnoreCase))
                {
                    throw new ArgumentException(string.Format("Parameter's value is invalid. valud = '{0}'.", sortOrder.Replace("'", "''")), "sortOrder");
                }
                #endregion
            }

            var orderByClause = string.Format("order by {0} {1}", sortIndex, sortOrder);

            var systemManager = VLSystemManager.GetAnInstance(accessToken);

            int totalRecords = 0;
            var items        = systemManager.GetContacts(listId, pageIndex, pageSize, ref totalRecords, string.Empty, orderByClause);

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

            var rows = items.Select(c => new
            {
                c.ClientId,
                c.ListId,
                c.ContactId,
                c.Organization,
                c.Title,
                c.FirstName,
                c.LastName,
                c.Email,
                c.IsOptedOut,
                c.IsBouncedEmail,
                CreateDT = accessToken.ConvertTimeFromUtc(c.CreateDT)
            }).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.º 5
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                /*
                 *  page: the requested page (default value page)
                 *  rows: the number of rows requested (default value rows)
                 *  sort: the sorting column (default value sidx)
                 *  order: the sort order (default value sord)
                 *  search: the search indicator (default value _search)
                 *  nd: the time passed to the request (for IE browsers not to cache the request) (default value nd)
                 *  id: the name of the id when POST-ing data in editing modules (default value id)
                 *  oper: the operation parameter (default value oper)
                 *  editoper: the name of operation when the data is POST-ed in edit mode (default value edit)
                 *  addoper: the name of operation when the data is posted in add mode (default value add)
                 *  deloper: the name of operation when the data is posted in delete mode (default value del)
                 *  totalrows: the number of the total rows to be obtained from server - see rowTotal (default value totalrows)
                 *  subgridid: the name passed when we click to load data in the subgrid (default value id)
                 */
                var pageIndex = TryParseInt32(context, "page", false, 1);
                var pageSize  = TryParseInt32(context, "rows", false, 10);
                var sortIndex = TryParseString(context, "sidx", false, "Name");
                {
                    #region check value

                    /*
                     * To  sortIndex πρέπει να ειναι η ονομασία ενός απο τα Public Properties του anonymous type που στέλνουμε σαν απάντηση:
                     * ClientId, ListId, ContactId, Organization, Title, FirstName, LastName, Email, IsOptedOut, IsBouncedEmail, CreationDT:
                     *
                     */
                    bool isok = false;
                    foreach (var item in whitelist)
                    {
                        if (item.Equals(sortIndex, System.StringComparison.OrdinalIgnoreCase))
                        {
                            isok = true;
                        }
                    }
                    if (!isok)
                    {
                        throw new ArgumentException(string.Format("Parameter's value is invalid. value = '{0}'.", sortIndex.Replace("'", "''")), "sortIndex");
                    }
                    #endregion
                }
                var sortOrder = TryParseString(context, "sord", false, "asc");
                {
                    #region check value
                    if (!sortOrder.Equals("asc", StringComparison.OrdinalIgnoreCase) && !sortOrder.Equals("desc", StringComparison.OrdinalIgnoreCase))
                    {
                        throw new ArgumentException(string.Format("Parameter's value is invalid. valud = '{0}'.", sortOrder.Replace("'", "''")), "sortOrder");
                    }
                    #endregion
                }

                var manager       = VLSurveyManager.GetAnInstance(accessToken);
                var orderByClause = string.Format("order by {0} {1}", sortIndex, sortOrder);

                int totalRecords = 0;
                var items        = manager.GetSurveys(pageIndex, pageSize, ref totalRecords, null, orderByClause);

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

                var rows = items.Select(c => new
                {
                    c.SurveyId,
                    c.Title,
                    c.Folder,
                    c.PublicId,
                    c.PrimaryLanguage,
                    c.SupportedLanguagesIds,
                    CreateDT     = accessToken.ConvertTimeFromUtc(c.CreateDT).ToString(Utilities.DateTime_Format_Human),
                    LastUpdateDT = accessToken.ConvertTimeFromUtc(c.LastUpdateDT).ToString(Utilities.DateTime_Format_Human),
                    c.TextsLanguage,
                    c.ShowTitle,
                    c.IsBuiltIn,
                    c.HasCollectors,
                    c.HasResponses,
                    c.RecordedResponses
                }).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);
            }
            catch
            {
                throw;
            }
        }
Ejemplo n.º 6
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);
        }