Exemple #1
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var collectorId   = TryParseInt32(context, "collectorId");
            var textsLanguage = TryParseInt16(context, "textsLanguage");

            var manager   = VLSurveyManager.GetAnInstance(accessToken);
            var collector = manager.GetCollectorById(collectorId, textsLanguage);

            if (collector != null)
            {
                collector.Name = TryParseString(context, "collectorName", true);
                collector      = manager.UpdateCollector(collector);

                var totalScheduledMessages = manager.GetScheduledMessagesCount(collector.CollectorId);

                var _collector = new
                {
                    collector.CollectorId,
                    collector.Survey,
                    collector.CollectorType,
                    collector.Name,
                    collector.AttributeFlags,
                    collector.Status,
                    collector.Responses,
                    collector.SupportedLanguagesIds,
                    collector.PrimaryLanguage,
                    ScheduledMessages = totalScheduledMessages,
                    CreateDT          = collector.CreateDT.ToString(Utilities.DateTime_Format_General),
                    LastUpdateDT      = collector.LastUpdateDT.ToString(Utilities.DateTime_Format_General)
                };

                var response = JsonConvert.SerializeObject(_collector, Formatting.None);
                context.Response.Write(response);
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var surveyId       = TryParseInt32(context, "surveyId");
            var sourceLanguage = TryParseInt16(context, "sourceLanguage");
            var targetLanguage = TryParseInt16(context, "targetLanguage");

            VLSurveyManager surveyManager    = VLSurveyManager.GetAnInstance(accessToken);
            var             translatedSurvey = surveyManager.AddSurveyLanguage(surveyId, sourceLanguage, targetLanguage);

            if (translatedSurvey != null)
            {
                var _survey = new
                {
                    translatedSurvey.Client,
                    translatedSurvey.SurveyId,
                    translatedSurvey.TextsLanguage,
                    translatedSurvey.Title,
                    translatedSurvey.ShowTitle
                };

                var response = JsonConvert.SerializeObject(_survey, Formatting.None);
                context.Response.Write(response);
            }
            else
            {
                throw new VLException("AddSurveyLanguage failure!");
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var surveyId      = TryParseInt32(context, "surveyId");
            var pageId        = TryParseInt16(context, "pageId");
            var textsLanguage = TryParseInt16(context, "textsLanguage", required: false, defValue: 0);

            var surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            var surveyPage    = surveyManager.GetSurveyPageById(surveyId, pageId, textsLanguage);

            if (surveyPage == null)
            {
                throw new VLException(string.Format("There is no SurveyPage with id='{0},{1}'.", surveyId, pageId));
            }

            var _item = new
            {
                surveyPage.Survey,
                surveyPage.PageId,
                surveyPage.DisplayOrder,
                surveyPage.HasSkipLogic,
                surveyPage.CustomId,
                surveyPage.SkipTo,
                surveyPage.SkipToPage,
                surveyPage.SkipToWebUrl,
                surveyPage.TextsLanguage,
                surveyPage.ShowTitle,
                surveyPage.Description,
                CreateDT     = surveyPage.CreateDT.ToShortDateString(),
                LastUpdateDT = surveyPage.LastUpdateDT.ToShortDateString(),
            };

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

            context.Response.Write(response);
        }
Exemple #4
0
        protected void CreateResponsesForSurvey2(VLSurveyManager surveyManager, VLSurvey survey, Int32 responses1 = 200, Int32 responses2 = 120, Int32 responses3 = 500)
        {
            var rnd         = new System.Random(965522113);
            var collector01 = surveyManager.CreateCollector(survey, CollectorType.WebLink, "collector01");
            var collector02 = surveyManager.CreateCollector(survey, CollectorType.WebLink, "collector02");
            var collector03 = surveyManager.CreateCollector(survey, CollectorType.WebLink, "collector03");

            for (int i = 1; i <= responses1; i++)
            {
                var openDate = new DateTime(2013, 8, 4, 12, 0, 0).AddHours(rnd.Next(0, 64));
                var response = surveyManager.CreateResponse(survey.SurveyId, collector01.CollectorId, null, openDate, openDate.AddMinutes(rnd.Next(4, 1441)));

                CreateResponseDetailsForSurvey2(surveyManager, response, rnd);
            }
            for (int i = 1; i <= responses2; i++)
            {
                var openDate = new DateTime(2013, 8, 8, 12, 0, 0).AddHours(rnd.Next(0, 64));
                var response = surveyManager.CreateResponse(survey.SurveyId, collector02.CollectorId, null, openDate, openDate.AddMinutes(rnd.Next(4, 1441)));

                CreateResponseDetailsForSurvey2(surveyManager, response, rnd);
            }
            for (int i = 1; i <= responses3; i++)
            {
                var openDate = new DateTime(2013, 8, 12, 12, 0, 0).AddHours(rnd.Next(0, 120));
                var response = surveyManager.CreateResponse(survey.SurveyId, collector03.CollectorId, null, openDate, openDate.AddMinutes(rnd.Next(4, 1441)));

                CreateResponseDetailsForSurvey2(surveyManager, response, rnd);
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var recipientId = TryParseInt32(context, "recipientId");

            var manager   = VLSurveyManager.GetAnInstance(accessToken);
            var recipient = manager.GetRecipientById(recipientId);

            if (recipient != null)
            {
                var _recipient = new
                {
                    recipient.RecipientId,
                    recipient.Collector,
                    recipient.RecipientKey,
                    recipient.Email,
                    recipient.FirstName,
                    recipient.LastName,
                    recipient.Title,
                    recipient.Status,
                    recipient.IsSentEmail,
                    recipient.IsOptedOut,
                    recipient.IsBouncedEmail,
                    recipient.HasPartiallyResponded,
                    recipient.HasResponded,
                    recipient.HasManuallyAdded
                };

                var response = JsonConvert.SerializeObject(_recipient, Formatting.None);
                context.Response.Write(response);
            }
            else
            {
                throw new VLException(string.Format("There is no Recipient with id='{0}'.", recipientId));
            }
        }
Exemple #6
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            HttpRequest     Request       = context.Request;
            HttpResponse    Response      = context.Response;
            VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);

            try
            {
                //Παίρνουμε το FileId απο το Request
                Guid  fileId = TryParseGuid(context, "fileid");
                Int32 width  = TryParseInt32(context, "width", false, 104);
                Int32 height = TryParseInt32(context, "height", false, 80);

                #region Cache Hook
                #endregion


                //τραβάμε τα στοιχεία του αρχείου απο το σύστημα
                var file = surveyManager.GetFileById(fileId);
                if (file == null)
                {
                    return;
                }

                System.Byte[] _thumbnail = surveyManager.GetThumbnail(file, width, height);
                if (_thumbnail != null)
                {
                    #region Cache Hook

                    #endregion

                    Response.ClearHeaders();
                    Response.Clear();
                    Response.Cache.SetExpires(DateTime.Now.AddDays(1));
                    Response.Cache.SetCacheability(HttpCacheability.Public);
                    Response.Cache.SetValidUntilExpires(true);
                    Response.ContentType = GetMimeType(file.OriginalFileName);

                    Response.BinaryWrite(_thumbnail);
                    //Response.End();/*It throws ThreadAbortException */
                    context.ApplicationInstance.CompleteRequest();
                }
                else
                {
                    //Response.Clear();
                    ////Response.CacheControl = "Public";
                    //Response.Cache.SetExpires(DateTime.Now.AddDays(1));
                    //Response.Cache.SetCacheability(HttpCacheability.Public);
                    //Response.Cache.SetValidUntilExpires(true);
                    //string image = Globals.GetImageForMimeType(managedFile.Mime, true);
                    //Response.WriteFile(context.Server.MapPath(string.Format("{0}/ecms/images/", Request.ApplicationPath).Replace("//", "/")) + image);
                    ////Response.End();/*It throws ThreadAbortException */
                    //context.ApplicationInstance.CompleteRequest();
                }
            }
            catch (Exception)
            {
                //System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var filterId = TryParseInt32(context, "filterId");

                var manager = VLSurveyManager.GetAnInstance(accessToken);
                var filter  = manager.GetViewFilterById(filterId);
                if (filter != null)
                {
                    manager.DeleteViewFilter(filter);


                    //empty json object
                    context.Response.Write("{}");
                }
                else
                {
                    throw new VLException(string.Format("There is no Filter with id='{0}'.", filterId));
                }
            }
            catch
            {
                throw;
            }
        }
        void UploadFile(VLSurveyManager surveyManager, VLSurvey survey, StringBuilder sb)
        {
            try
            {
                HttpPostedFile oFile = Request.Files[0];
                if (oFile == null)
                {
                    throw new VLException("Κανένα αρχείο δεν έγινε upload!");
                }

                int fileLength = oFile.ContentLength;
                if (fileLength <= 0)
                {
                    throw new VLException("To αρχείο είχε μηδενικό μέγεθος!");
                }


                string postedFileName = Path.GetFileName(oFile.FileName);
                //Πρέπει να μεταφέρουμε το αρχείο στον EcmsFileManager.
                //Για να το κάνουμε αυτό το μεταφέρουμε στην μνήμη
                System.Byte[] mem          = new byte[fileLength];
                Stream        postedStream = oFile.InputStream;
                postedStream.Read(mem, 0, fileLength);


                VLFile file = surveyManager.AssignFile(survey.SurveyId, mem, postedFileName);
                sb.Append("{\"res\":\"ok\", \"msg\":\"\"}");
            }
            catch (Exception ex)
            {
                sb.AppendFormat("{{\"res\":\"error\", \"msg\":\"{0}\"}}", ex.Message);
                Logger.Error(HttpContext.Current.Request.RawUrl, ex);
            }
        }
Exemple #9
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var messageId = TryParseInt32(context, "messageId");

            var manager = VLSurveyManager.GetAnInstance(accessToken);
            var message = manager.GetMessageById(messageId);

            if (message != null)
            {
                var _message = new
                {
                    message.Collector,
                    message.MessageId,
                    message.Sender,
                    message.Status,
                    message.IsDeliveryMethodOK,
                    message.IsSenderOK,
                    message.IsContentOK,
                    message.IsScheduleOK,
                    message.ScheduledAt,
                    message.SentCounter,
                    message.DeliveryMethod,
                    message.Subject
                };

                var response = JsonConvert.SerializeObject(_message, Formatting.None);
                context.Response.Write(response);
            }
            else
            {
                throw new VLException(string.Format("There is no Message with id='{0}'.", messageId));
            }
        }
Exemple #10
0
        void SendFile(HttpRequest request, HttpResponse response, VLSurveyManager surveyManager, VLFile file)
        {
            response.ClearHeaders();
            response.Clear();
            response.Cookies.Clear();
            response.Cache.SetCacheability(HttpCacheability.NoCache);
            response.Charset = System.Text.UTF8Encoding.UTF8.WebName;

            String userAgent = HttpContext.Current.Request.Headers.Get("User-Agent");

            if (userAgent.Contains("MSIE"))
            {
                response.AppendHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.OriginalFileName.Replace(" ", "_"), System.Text.Encoding.UTF8));
            }
            else
            {
                response.AppendHeader("Content-Disposition", "attachment; filename=" + file.OriginalFileName.Replace(" ", "_"));
            }

            response.ContentType = GetMimeType(file.OriginalFileName);


            if (!file.IsPhysicalFile || file.IsCompressed || file.IsEncrypted)
            {
                SendFileFromCMS(request, response, surveyManager, file);
            }
            else
            {
                SendFileFromFS(request, response, surveyManager, file);
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var viewId             = TryParseGuid(context, "viewId");
                var questionId         = TryParseInt16(context, "questionId");
                var comparisonOperator = (ComparisonOperator)TryParseByte(context, "operator");
                var userinput1         = TryParseString(context, "userinput1");
                var userinput2         = TryParseString(context, "userinput2", false, null);

                //Φτιάχνουμε ένα surveyManager:
                VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
                //Βρισκουμε την επιλεγμένη όψη:
                var selectedview = surveyManager.GetViewById(viewId);


                //Δημιουργούμε και το φίλτρο:
                var filter = surveyManager.AddFilter(selectedview, questionId, new VLFilterDetail {
                    Operator = comparisonOperator, UserInput1 = userinput1, UserInput2 = userinput2
                });



                //empty json object
                context.Response.Write("{}");
            }
            catch
            {
                throw;
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var surveyId      = TryParseInt32(context, "surveyId");
            var pageId        = TryParseInt16(context, "pageId");
            var textsLanguage = TryParseInt16(context, "textsLanguage", required: false, defValue: 0);

            var surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            var pages         = surveyManager.GetCandidateSkipPagesForPage(surveyId, pageId, addVirtualPages: true, textsLanguage: textsLanguage);

            var rows = pages.Select(c => new {
                c.Survey,
                c.PageId,
                c.DisplayOrder,
                c.HasSkipLogic,
                c.CustomId,
                c.SkipTo,
                c.SkipToPage,
                c.SkipToWebUrl,
                c.ShowTitle,

                /*
                 * Στις κανονικές σελίδες εμφανίζουμε το πρόθεμα Page: <pageid>
                 * Στις virtual σελίδες εμφναίζουμε μόνο το ShowTitle
                 */
                OptionTitle = c.PageId >= 0 ? (HttpUtility.HtmlEncode(string.Format("Page {0}: {1}", c.DisplayOrder, (c.ShowTitle != null ? c.ShowTitle : "<untitled page>")))) : ((c.ShowTitle != null ? c.ShowTitle : "<untitled page>"))
            }).ToArray();

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

            context.Response.Write(response);
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var filterId = TryParseInt32(context, "filterId");

            var manager = VLSurveyManager.GetAnInstance(accessToken);
            var filter  = manager.GetViewFilterById(filterId);

            if (filter != null)
            {
                var _filter = new
                {
                    filter.ViewId,
                    filter.FilterId,
                    filter.Survey,
                    filter.Name,
                    filter.ApplyOrder,
                    filter.IsRule,
                    filter.Question,
                    filter.QuestionType,
                    filter.LogicalOperator,
                    filter.IsActive
                };

                var response = JsonConvert.SerializeObject(_filter, Formatting.None);
                context.Response.Write(response);
            }
            else
            {
                throw new VLException(string.Format("There is no Filter with id='{0}'.", filterId));
            }
        }
        public void CollectorTest02()
        {
            var surveyManager = VLSurveyManager.GetAnInstance(admin);
            var systemManager = VLSystemManager.GetAnInstance(admin);


            try
            {
                //We create a customer:
                var client1 = systemManager.CreateClient("MySoftavia S.A.", BuiltinCountries.Greece, "man", profile: BuiltinProfiles.UTESTFree.ProfileId);
                Assert.IsNotNull(client1);
                //We create a survey:
                var survey1 = surveyManager.CreateSurvey(client1, "Questionnaire #1", "Risk assessment");
                Assert.IsTrue(survey1.Client == client1.ClientId);
                //ΔΗΜΙΟΥΡΓΟΥΜΕ ΕΝΑ COLLECTOR:
                var collector01 = surveyManager.CreateCollector(survey1.SurveyId, CollectorType.Email, "COLLECTOR01_email");
                Assert.IsNotNull(collector01);


                //δεν έχουμε κανένα message:
                Assert.IsTrue(surveyManager.GetMessages(collector01).Count == 0);

                //ΔΗΜΙΟΥΡΓΟΥΜΕ ΕΝΑ MESSAGE:
                var message01 = surveyManager.CreateMessage(collector01, "*****@*****.**", "please answer the following questions", "We are conducting a survey, and your response would be appreciated. Here is a link to the survey: [SurveyLink]. In Order to be removed: [RemoveLink]");
                Assert.IsNotNull(message01);
                Assert.IsTrue(message01.Collector == collector01.CollectorId);

                var svdMessage01 = surveyManager.GetMessageById(message01.MessageId);
                Assert.AreEqual <VLMessage>(message01, svdMessage01);


                //έχουμε ένα message:
                Assert.IsTrue(surveyManager.GetMessages(collector01).Count == 1);
            }
            finally
            {
                var surveys = surveyManager.GetSurveys(textsLanguage: BuiltinLanguages.PrimaryLanguage);
                foreach (var item in surveys)
                {
                    if (item.IsBuiltIn)
                    {
                        continue;
                    }

                    surveyManager.DeleteSurvey(item);
                }

                var clients = systemManager.GetClients();
                foreach (var client in clients)
                {
                    if (client.IsBuiltIn)
                    {
                        continue;
                    }

                    systemManager.DeleteClient(client);
                }
            }
        }
        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);
                var orderByClause = string.Format("order by {0} {1}", sortIndex, sortOrder);

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

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


                var rows = items.Select(c => new
                {
                    c.RecipientId,
                    c.Collector,
                    c.RecipientKey,
                    c.Email,
                    c.FirstName,
                    c.LastName,
                    c.Title,
                    c.Status,
                    c.IsSentEmail,
                    c.IsOptedOut,
                    c.IsBouncedEmail,
                    c.HasPartiallyResponded,
                    c.HasResponded,
                    c.HasManuallyAdded
                }).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)
        {
            try
            {
                var viewId     = TryParseGuid(context, "viewId");
                var questionId = TryParseInt16(context, "questionId");
                var conc_rows  = TryParseString(context, "rows");         //fltrOption_8_1_1,fltrOption_8_2_2,fltrOption_8_3_3
                var conc_cols  = TryParseString(context, "columns");      //fltrColumn_8_9_1,fltrColumn_8_10_1,fltrColumn_8_8_2,fltrColumn_8_9_2,fltrColumn_8_10_2,fltrColumn_8_5_3,fltrColumn_8_6_3,fltrColumn_8_7_3,fltrColumn_8_8_3

                /*σπάμε rows & columns:*/
                var rows    = conc_rows.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                var columns = conc_cols.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);


                //Φτιάχνουμε ένα surveyManager:
                VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
                //Βρισκουμε την επιλεγμένη όψη:
                var selectedview = surveyManager.GetViewById(viewId);


                //Δημιουργούμε τα filterDetails:
                Collection <VLFilterDetail> details = new Collection <VLFilterDetail>();
                foreach (var row in rows)
                {
                    var   tokens   = row.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                    Int32 question = Int32.Parse(tokens[1]);
                    byte  option   = byte.Parse(tokens[2]);
                    byte  section  = byte.Parse(tokens[3]);

                    foreach (var col in columns)
                    {
                        var   tokens2   = col.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                        Int32 question2 = Int32.Parse(tokens2[1]);
                        byte  column    = byte.Parse(tokens2[2]);
                        byte  section2  = byte.Parse(tokens2[3]);

                        if (question == question2 && section == section2)
                        {
                            details.Add(new VLFilterDetail {
                                Operator = ComparisonOperator.IsChecked, SelectedOption = option, SelectedColumn = column
                            });
                        }
                    }
                }
                //Δημιουργούμε και το φίλτρο:
                var filter = surveyManager.AddFilter(selectedview, questionId, details);



                //empty json object
                context.Response.Write("{}");
            }
            catch
            {
                throw;
            }
        }
        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)
        {
            VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            var             dashboard     = surveyManager.GetSystemDashboard();


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

            context.Response.Write(response);
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var collectorId = TryParseInt32(context, "collectorId");

            var manager = VLSurveyManager.GetAnInstance(accessToken);

            manager.CloseCollector(collectorId);
            //empty json object
            context.Response.Write("{}");
        }
        private static void WriteExcelFile(VLSurveyManager surveyManager, VLSurvey survey, Collection <VLSurveyQuestionEx> questions, Collection <VLResponseEx> responses, SpreadsheetDocument spreadsheet)
        {
            //  Create the Excel file contents.  This function is used when creating an Excel file either writing
            //  to a file, or writing to a MemoryStream.
            spreadsheet.AddWorkbookPart();
            spreadsheet.WorkbookPart.Workbook = new DocumentFormat.OpenXml.Spreadsheet.Workbook();

            //  My thanks to James Miera for the following line of code (which prevents crashes in Excel 2010)
            spreadsheet.WorkbookPart.Workbook.Append(new BookViews(new WorkbookView()));

            //  If we don't add a "WorkbookStylesPart", OLEDB will refuse to connect to this .xlsx file !
            WorkbookStylesPart workbookStylesPart = spreadsheet.WorkbookPart.AddNewPart <WorkbookStylesPart>("rIdStyles");

            //Stylesheet stylesheet = new Stylesheet();
            //workbookStylesPart.Stylesheet = stylesheet;
            workbookStylesPart.Stylesheet = CreateStylesheet();
            workbookStylesPart.Stylesheet.Save();



            uint worksheetNumber = 1;

            {
                // For each worksheet you want to create
                string workSheetID   = "rId" + worksheetNumber.ToString();
                string worksheetName = "Responses";

                WorksheetPart newWorksheetPart = spreadsheet.WorkbookPart.AddNewPart <WorksheetPart>();
                newWorksheetPart.Worksheet = new DocumentFormat.OpenXml.Spreadsheet.Worksheet();

                // create sheet data
                newWorksheetPart.Worksheet.AppendChild(new DocumentFormat.OpenXml.Spreadsheet.SheetData());

                // save worksheet
                WriteDataTableToExcelWorksheet(surveyManager, survey, questions, responses, newWorksheetPart);
                newWorksheetPart.Worksheet.Save();

                // create the worksheet to workbook relation
                if (worksheetNumber == 1)
                {
                    spreadsheet.WorkbookPart.Workbook.AppendChild(new DocumentFormat.OpenXml.Spreadsheet.Sheets());
                }

                spreadsheet.WorkbookPart.Workbook.GetFirstChild <DocumentFormat.OpenXml.Spreadsheet.Sheets>().AppendChild(new DocumentFormat.OpenXml.Spreadsheet.Sheet()
                {
                    Id      = spreadsheet.WorkbookPart.GetIdOfPart(newWorksheetPart),
                    SheetId = (uint)worksheetNumber,
                    Name    = "Responses"
                });

                worksheetNumber++;
            }

            spreadsheet.WorkbookPart.Workbook.Save();
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var viewId          = TryParseGuid(context, "viewId");
                var conc_collectors = TryParseString(context, "collectors");

                //Φτιάχνουμε ένα surveyManager:
                VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
                //Βρισκουμε την επιλεγμένη όψη:
                var selectedview = surveyManager.GetViewById(viewId);

                var _collectors = conc_collectors.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                Collection <Int32> collectors = new Collection <int>();
                foreach (var item in _collectors)
                {
                    collectors.Add(Int32.Parse(item.Substring(13)));
                }
                selectedview = surveyManager.AddCollectorFilter(selectedview, collectors);

                var _view = new
                {
                    selectedview.Client,
                    selectedview.UserId,
                    selectedview.Survey,
                    selectedview.ViewId,
                    selectedview.Name,
                    selectedview.IsDefaultView,
                    selectedview.PartialShowInUse,
                    selectedview.EnablePartialShow,
                    selectedview.FilteringByCollectorInUse,
                    selectedview.EnableFilteringByCollector,
                    selectedview.FilteringByTimePeriodInUse,
                    selectedview.EnableFilteringByTimePeriod,
                    selectedview.FilteringByResponseTimeInUse,
                    selectedview.EnableFilteringByResponseTime,
                    selectedview.FilteringByQuestionInUse,
                    selectedview.TimePeriodStart,
                    selectedview.TimePeriodEnd,
                    selectedview.TotalResponseTime,
                    selectedview.TotalResponseTimeUnit,
                    selectedview.TotalResponseTimeOperator,
                    selectedview.NumberOfQuestionFilters
                };


                var response = JsonConvert.SerializeObject(_view, Formatting.None);
                context.Response.Write(response);
            }
            catch
            {
                throw;
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var viewId           = TryParseGuid(context, "viewId");
                var _timePeriodStart = TryParseString(context, "timePeriodStart");
                var _timePeriodEnd   = TryParseString(context, "timePeriodEnd");

                //Φτιάχνουμε ένα surveyManager:
                VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
                //Βρισκουμε την επιλεγμένη όψη:
                var selectedview = surveyManager.GetViewById(viewId);

                //ΣΤΑ RESPONSES ΟΙ ΗΜΕΡΟΜΗΝΙΕΣ ΕΙΝΑΙ ΠΑΝΤΑ MM/DD/YYYY:
                var timePeriodStart = DateTime.ParseExact(_timePeriodStart, "MM/dd/yyyy", CultureInfo.InvariantCulture);
                var timePeriodEnd   = DateTime.ParseExact(_timePeriodEnd, "MM/dd/yyyy", CultureInfo.InvariantCulture);

                selectedview = surveyManager.AddTimePeriodFilter(selectedview, timePeriodStart, timePeriodEnd);

                var _view = new
                {
                    selectedview.Client,
                    selectedview.UserId,
                    selectedview.Survey,
                    selectedview.ViewId,
                    selectedview.Name,
                    selectedview.IsDefaultView,
                    selectedview.PartialShowInUse,
                    selectedview.EnablePartialShow,
                    selectedview.FilteringByCollectorInUse,
                    selectedview.EnableFilteringByCollector,
                    selectedview.FilteringByTimePeriodInUse,
                    selectedview.EnableFilteringByTimePeriod,
                    selectedview.FilteringByResponseTimeInUse,
                    selectedview.EnableFilteringByResponseTime,
                    selectedview.FilteringByQuestionInUse,
                    selectedview.TimePeriodStart,
                    selectedview.TimePeriodEnd,
                    selectedview.TotalResponseTime,
                    selectedview.TotalResponseTimeUnit,
                    selectedview.TotalResponseTimeOperator,
                    selectedview.NumberOfQuestionFilters
                };


                var response = JsonConvert.SerializeObject(_view, Formatting.None);
                context.Response.Write(response);
            }
            catch
            {
                throw;
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var ViewId     = TryParseGuid(context, "ViewId", true);
            var SurveyId   = TryParseInt32(context, "SurveyId", true);
            var QuestionId = TryParseInt16(context, "QuestionId", true);
            var chartType  = TryParseString(context, "chartType", true);

            VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            VLViewQuestion  question      = null;

            if (string.Equals(chartType, "2" /*Pie*/, StringComparison.OrdinalIgnoreCase))
            {
                question = surveyManager.SetChartType(ViewId, SurveyId, QuestionId, ChartType.Pie);
            }
            else if (string.Equals(chartType, "0" /*HorizontalBar*/, StringComparison.OrdinalIgnoreCase))
            {
                question = surveyManager.SetChartType(ViewId, SurveyId, QuestionId, ChartType.HorizontalBar);
            }
            else if (string.Equals(chartType, "1" /*VerticalBar*/, StringComparison.OrdinalIgnoreCase))
            {
                question = surveyManager.SetChartType(ViewId, SurveyId, QuestionId, ChartType.VerticalBar);
            }

            if (question != null)
            {
                var _question = new
                {
                    question.ViewId,
                    question.Survey,
                    question.Question,
                    question.ShowResponses,
                    question.ShowChart,
                    question.ShowDataTable,
                    question.ShowDataInTheChart,
                    question.HideZeroResponseOptions,
                    question.SwapRowsAndColumns,
                    question.ChartType,
                    question.LabelType,
                    question.AxisScale,
                    question.ScaleMaxPercentage,
                    question.ScaleMaxAbsolute,
                    question.SummaryTotalAnswered,
                    question.SummaryTotalSkipped
                };

                var response = JsonConvert.SerializeObject(_question, Formatting.None);
                context.Response.Write(response);
            }
            else
            {
                throw new VLException(string.Format("There is no ViewQuestion (ViewId='{0}', SurveyId='{1}', QuestionId='{2}'", ViewId, SurveyId, QuestionId));
            }
        }
Exemple #25
0
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var surveyId = TryParseInt32(context, "surveyId");
            var pageId   = TryParseInt16(context, "pageId");
            var questionsDeleteBehavior = TryParseByte(context, "questionsDeleteBehavior", required: false, defValue: 0);


            var surveyManager = VLSurveyManager.GetAnInstance(accessToken);

            surveyManager.DeleteSurveyPage(surveyId, pageId, (DeleteQuestionsBehavior)questionsDeleteBehavior);

            context.Response.Write("{}");
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var clientId = TryParseInt32(context, "clientId");


            VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            var             dashboard     = surveyManager.GetClientDashboard(clientId);


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

            context.Response.Write(response);
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            try
            {
                var   viewId = TryParseGuid(context, "viewId");
                var   totalResponseTimeOperator = (ResponseTimeOperator)TryParseByte(context, "totalResponseTimeOperator");
                Int32 totalResponseTime         = TryParseInt32(context, "totalResponseTime");
                var   totalResponseTimeUnit     = (ResponseTimeUnit)TryParseByte(context, "totalResponseTimeUnit");

                //Φτιάχνουμε ένα surveyManager:
                VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
                //Βρισκουμε την επιλεγμένη όψη:
                var selectedview = surveyManager.GetViewById(viewId);


                selectedview = surveyManager.AddResponseTimeFilter(selectedview, totalResponseTimeOperator, totalResponseTime, totalResponseTimeUnit);

                var _view = new
                {
                    selectedview.Client,
                    selectedview.UserId,
                    selectedview.Survey,
                    selectedview.ViewId,
                    selectedview.Name,
                    selectedview.IsDefaultView,
                    selectedview.PartialShowInUse,
                    selectedview.EnablePartialShow,
                    selectedview.FilteringByCollectorInUse,
                    selectedview.EnableFilteringByCollector,
                    selectedview.FilteringByTimePeriodInUse,
                    selectedview.EnableFilteringByTimePeriod,
                    selectedview.FilteringByResponseTimeInUse,
                    selectedview.EnableFilteringByResponseTime,
                    selectedview.FilteringByQuestionInUse,
                    selectedview.TimePeriodStart,
                    selectedview.TimePeriodEnd,
                    selectedview.TotalResponseTime,
                    selectedview.TotalResponseTimeUnit,
                    selectedview.TotalResponseTimeOperator,
                    selectedview.NumberOfQuestionFilters
                };


                var response = JsonConvert.SerializeObject(_view, Formatting.None);
                context.Response.Write(response);
            }
            catch
            {
                throw;
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var collectorId   = TryParseInt32(context, "collectorId");
            var textsLanguage = TryParseInt16(context, "textsLanguage");


            var manager         = VLSurveyManager.GetAnInstance(accessToken);
            var sysmanager      = VLSystemManager.GetAnInstance(accessToken);
            var collector       = manager.GetCollectorById(collectorId, textsLanguage);
            var hasUsedPayments = false;

            if (collector != null)
            {
                var totalScheduledMessages = manager.GetScheduledMessagesCount(collector.CollectorId);
                var totalResponses         = manager.GetResponsesCountForCollector(collector.Survey, collector.CollectorId);
                var totalPayments          = sysmanager.GetCollectorPayments(collectorId);
                foreach (var tp in totalPayments)
                {
                    if (tp.IsUsed)
                    {
                        hasUsedPayments = true;
                        break;
                    }
                }

                var _collector = new
                {
                    collector.CollectorId,
                    collector.Survey,
                    collector.CollectorType,
                    collector.Name,
                    collector.AttributeFlags,
                    collector.Status,
                    collector.Responses,
                    collector.SupportedLanguagesIds,
                    collector.PrimaryLanguage,
                    ScheduledMessages = totalScheduledMessages,
                    TotalResponses    = totalResponses,
                    HasUsedPayments   = hasUsedPayments,
                    CreateDT          = collector.CreateDT.ToString(Utilities.DateTime_Format_General),
                    LastUpdateDT      = collector.LastUpdateDT.ToString(Utilities.DateTime_Format_General)
                };

                var response = JsonConvert.SerializeObject(_collector, Formatting.None);
                context.Response.Write(response);
            }
            else
            {
                throw new VLException(string.Format("There is no Collector with id='{0},{1}'.", collectorId, textsLanguage));
            }
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var surveyId      = TryParseInt32(context, "surveyId");
            var questionId    = TryParseInt16(context, "questionId");
            var textsLanguage = TryParseInt16(context, "textsLanguage");

            VLSurveyManager surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            var             options       = surveyManager.GetQuestionOptions(surveyId, questionId, textsLanguage);


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

            context.Response.Write(response);
        }
        protected override void ProcessGetRequestWrapped(Valis.Core.VLAccessToken accessToken, HttpContext context)
        {
            var surveyId      = TryParseInt32(context, "surveyId");
            var pageId        = TryParseInt16(context, "pageId");
            var textsLanguage = TryParseInt16(context, "textsLanguage", required: false, defValue: 0);

            var surveyManager = VLSurveyManager.GetAnInstance(accessToken);
            var options       = surveyManager.GetDeleteSurveyPageOptions(surveyId, pageId);


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

            context.Response.Write(response);
        }