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); }
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; } }
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); }
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; } }
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); }