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