Exemple #1
0
        public ActionResult Get([FromQuery] string sortOrder, [FromQuery] string direction, [FromQuery] string searchString, [FromQuery] string currentFilter, [FromQuery] int?page)
        {
            WriterListViewModel writerList = new WriterListViewModel();

            writerList.Filter          = searchString;
            writerList.Order.Column    = sortOrder ?? "fullName";
            writerList.Order.Direction = direction ?? "ASC";
            writerList.Page            = page ?? 1;
            if (writerList.Filter != null)
            {
                writerList.Page = 1;
            }
            else
            {
                writerList.Filter = currentFilter;
            }
            var writers = _writerRepository.GetPage(writerList.Page, writerList.PageSize, (query) => ApplySortOrder(ApplyFilter(query, searchString), writerList.Order.Column, writerList.Order.Direction));

            foreach (var c in writers)
            {
                writerList.Items.Add(new WriterGridModel {
                    Id = c.Id, FullName = $"{c.LastName} {c.FirstName}", DateOfBirth = c.DateOfBirth, Biography = c.Biography
                });
            }
            writerList.TotalPages = (int)Math.Ceiling(writers.TotalCount / (double)writerList.PageSize);
            return(Ok(writerList));
        }
        public async Task <JsonResult> ExportAndSend(WriterListViewModel vm, JqGridModel model)
        {
            var result      = false;
            var htmlBuilder = new StringBuilder();

            try
            {
                string jsonPostData;
                using (var input = Request.InputStream)
                {
                    input.Position = 0;
                    using (var reader = new System.IO.StreamReader(input))
                    {
                        jsonPostData = reader.ReadToEnd();
                    }
                }

                var jqGrid = JsonConvert.DeserializeObject <JqGridModel>(jsonPostData, new JqGridConverter());
                int totalRecords;
                var data      = GetData(jqGrid.GridSettings, out totalRecords, true);
                var colStates = ConvertDataToExcel.ConvertColStateToColumnModels(jqGrid.ColStates);
                foreach (var columnModel in colStates)
                {
                    if (!string.IsNullOrEmpty(columnModel.Header))
                    {
                        htmlBuilder.AppendFormat(@"{0};", columnModel.Header);
                    }
                }

                htmlBuilder.AppendFormat(Environment.NewLine);
                htmlBuilder = ConvertDataToExcel.ConvertDataToArray(data, jqGrid.ColStates, htmlBuilder);

                //var fileName = String.Format("{0}.csv", vm.GridData.Caption);

                //var attach = new Dictionary<string, string> {[fileName] = htmlBuilder.ToString() };
                var user = await _userManager.FindByIdAsync(User.Identity.GetUserId());

                //result = Email.SendZipEmail(user.Email, Server.MapPath("~/Reports/"), fileName, htmlBuilder.ToString());
                var fileName = String.Format("{1}{0}.csv", vm.GridData.Caption, Server.MapPath(WebConfigurationManager.AppSettings["ReportsPath"]));
                var resp     = await _emailingService.SendMessage(user.Email, fileName, htmlBuilder.ToString());

                result = resp.RejectReason == null;
            }
            catch (Exception ex)
            {
                //_log.Error(ex);
                return(new JsonResult
                {
                    Data = new { ErrorMessage = ex.Message, Success = false },
                    ContentEncoding = System.Text.Encoding.UTF8,
                    JsonRequestBehavior = JsonRequestBehavior.DenyGet
                });
            }

            return(new JsonResult()
            {
                Data = new { Success = result },
            });
        }
        // GET: Writer
        public async Task <ActionResult> Index()
        {
            var model = new WriterListViewModel();
            var user  = await _userManager.FindByIdAsync(User.Identity.GetUserId());

            model.GridData.Templates = JsonTemplateConverter.ConvertFromDB(user.Templates, model.GridData.Caption);
            return(View(model));
        }
        public async Task <ActionResult> jqGridTempl(ColumnChooserTemplate temp, WriterListViewModel vm)
        {
            string jsonPostData;

            using (var stream = Request.InputStream)
            {
                stream.Position = 0;
                using (var reader = new System.IO.StreamReader(stream))
                {
                    jsonPostData = reader.ReadToEnd();
                }
            }

            var user = await _userManager.FindByIdAsync(User.Identity.GetUserId());

            user.Templates += JsonTemplateConverter.ConvertToDB(jsonPostData, vm.GridData.Caption);
            var result = await _userManager.UpdateAsync(user);

            return(Json(new { success = result.Succeeded }));
        }