public async Task <IViewComponentResult> InvokeAsync(string idForm) { var user = await _userManager.GetUserAsync(HttpContext.User); bool isExists = await _context.MtdFilter.Where(x => x.IdUser == user.Id).AnyAsync(); if (!isExists) { MtdFilter mtdFilter = new MtdFilter { IdUser = user.Id, MtdForm = idForm, Page = 1, PageSize = 10, SearchNumber = "", SearchText = "" }; await _context.MtdFilter.AddAsync(mtdFilter); await _context.SaveChangesAsync(); } PlaceModelView model = new PlaceModelView { IdForm = idForm }; return(View("Default", model)); }
public async Task <IViewComponentResult> InvokeAsync(string idForm) { var user = await _userManager.GetUserAsync(HttpContext.User); var mtdFormList = await ApprovalHandler.GetWaitStoreIds(_context, user, idForm); int pending = mtdFormList.Count(); string searchText = ""; bool whiteList = false; MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id && x.MtdForm == idForm); if (filter != null) { searchText = filter.SearchText; whiteList = filter.WaitList == 0 ? false : true; } HeaderModelView headerModelView = new HeaderModelView { IdForm = idForm, SearchText = searchText, WaitList = whiteList, Pending = pending, IsApprovalForm = await ApprovalHandler.IsApprovalFormAsync(_context, idForm) }; return(View("Default", headerModelView)); }
public async Task <IActionResult> PostPageSize(string idForm, int number) { int temp = number; if (temp > 50) { temp = 50; } WebAppUser user = await _userManager.GetUserAsync(User); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id && x.MtdForm == idForm); if (filter == null) { filter = new MtdFilter { SearchNumber = "", SearchText = "" }; await _context.MtdFilter.AddAsync(filter); await _context.SaveChangesAsync(); } filter.PageSize = number; _context.MtdFilter.Update(filter); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <TypeQuery> GetTypeQueryAsync() { TypeQuery typeQuery = TypeQuery.empty; bool filterField = false; MtdFilter mtdFilter = await GetFilterAsync(); if (mtdFilter != null) { filterField = await _context.MtdFilterField.Where(x => x.MtdFilter == mtdFilter.Id).AnyAsync(); if (mtdFilter.SearchNumber != "") { typeQuery = TypeQuery.number; } if (mtdFilter.SearchNumber == "" && mtdFilter.SearchText != "" && !filterField) { typeQuery = TypeQuery.text; } if (mtdFilter.SearchNumber == "" && mtdFilter.SearchText == "" && filterField) { typeQuery = TypeQuery.field; } if (mtdFilter.SearchNumber == "" && mtdFilter.SearchText != "" && filterField) { typeQuery = TypeQuery.textField; } } return(typeQuery); }
public async Task <Incomer> GetIncomerDataAsync() { MtdFilter mtdFilter = await GetFilterAsync(); Incomer ps = new Incomer { IdForm = IdForm, SearchNumber = "", SearchText = "", Page = 1, PageSize = 10, FieldForColumn = await GetFieldsAsync(), WaitList = 0, }; if (mtdFilter != null) { ps.IdForm = IdForm; ps.SearchText = mtdFilter.SearchText; ps.SearchNumber = mtdFilter.SearchNumber; ps.PageSize = mtdFilter.PageSize; ps.Page = mtdFilter.Page; ps.FieldForFilter = await GetAdvancedAsync(); ps.WaitList = mtdFilter.WaitList; } return(ps); }
public async Task <IActionResult> PostWaitListSetAsync() { IFormCollection requestForm = await Request.ReadFormAsync(); string idForm = requestForm["id-form-waitlist"]; WebAppUser user = await _userManager.GetUserAsync(HttpContext.User); MtdFilter mtdFilter = await _context.MtdFilter.Where(x => x.IdUser == user.Id && x.MtdForm == idForm).FirstOrDefaultAsync(); if (mtdFilter == null) { mtdFilter = new MtdFilter { IdUser = user.Id, MtdForm = idForm, PageSize = 10, SearchText = "", SearchNumber = "", Page = 1, WaitList = 1, }; await _context.MtdFilter.AddAsync(mtdFilter); await _context.SaveChangesAsync(); return(Ok()); } mtdFilter.WaitList = mtdFilter.WaitList == 0 ? 1 : 0; _context.MtdFilter.Update(mtdFilter); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IList <MtdFormPartField> > GetFieldsAsync() { IList <MtdFormPartField> result; MtdFilter mtdFilter = await GetFilterAsync(); if (mtdFilter != null && mtdFilter.MtdFilterColumn != null && mtdFilter.MtdFilterColumn.Count > 0) { List <string> fIds = mtdFilter.MtdFilterColumn.Select(x => x.MtdFormPartField).ToList(); IList <MtdFormPartField> tempFields = await _context.MtdFormPartField.Where(x => fIds.Contains(x.Id)).ToListAsync(); result = (from s in tempFields join sa in mtdFilter.MtdFilterColumn on s.Id equals sa.MtdFormPartField orderby sa.Sequence select s).ToList(); } else { result = await _context.MtdFormPartField .Include(m => m.MtdFormPartNavigation) .Where(x => x.MtdFormPartNavigation.MtdForm == IdForm & x.MtdSysType == 1) .OrderBy(s => s.MtdFormPartNavigation.Sequence).ThenBy(s => s.Sequence) .Take(3) .ToListAsync(); } return(result); }
public async Task <IList <MtdFilterField> > GetAdvancedAsync() { IList <MtdFilterField> result = null; MtdFilter mtdFilter = await GetFilterAsync(); if (mtdFilter != null) { result = await _context.MtdFilterField.Include(m => m.MtdFormPartFieldNavigation).Where(x => x.MtdFilter == mtdFilter.Id).ToListAsync(); } return(result); }
public async Task <IActionResult> OnGetAsync(string searchText) { WebAppUser user = await _userHandler.GetUserAsync(HttpContext.User); List <string> formIds = await _userHandler.GetFormIdsAsync(user, RightsType.View, RightsType.ViewGroup, RightsType.ViewOwn); List <MtdForm> forms = await _context.MtdForm.Where(x => formIds.Contains(x.Id)).ToListAsync(); foreach (var form in forms) { bool isExists = await _context.MtdFilter.Where(x => x.MtdForm == form.Id && x.IdUser == user.Id).AnyAsync(); if (!isExists) { MtdFilter mtdFilter = new MtdFilter { MtdForm = form.Id, IdUser = user.Id, Page = 1, PageSize = 10, SearchText = "", ShowDate = 1, WaitList = 0, SearchNumber = "", ShowNumber = 1 }; await _context.MtdFilter.AddAsync(mtdFilter); await _context.SaveChangesAsync(); } } IQueryable <MtdForm> query = _context.MtdForm .Include(x => x.MtdCategoryNavigation) .Include(x => x.MtdFormHeader) .Include(x => x.MtdFormDesk) .Where(x => formIds.Contains(x.Id)); if (searchText != null) { query = query.Where(x => x.Name.Contains(searchText)); SearchText = searchText; } Forms = await query.ToListAsync(); return(Page()); }
public async Task <IActionResult> PostExportAsync() { var data = Request.Form["InputFormForExport"]; if (data.FirstOrDefault() == null || data.FirstOrDefault().Equals(string.Empty)) { return(NotFound()); } string idForm = data.FirstOrDefault(); var user = await _userHandler.GetUserAsync(User); List <string> partIds = await _userHandler.GetAllowPartsForView(user, idForm); FilterHandler handlerFilter = new FilterHandler(_context, idForm, user, _userHandler); MtdFilter mtdFilter = await handlerFilter.GetFilterAsync(); if (mtdFilter == null) { return(NotFound()); } Incomer incomer = await handlerFilter.GetIncomerDataAsync(); TypeQuery typeQuery = await handlerFilter.GetTypeQueryAsync(); incomer.PageSize = 1000; OutFlow outFlow = await handlerFilter.GetStackFlowAsync(incomer, typeQuery); IList <MtdStore> mtdStore = outFlow.MtdStores; IList <string> storeIds = mtdStore.Select(s => s.Id).ToList(); IList <string> fieldIds = incomer.FieldForColumn.Select(x => x.Id).ToList(); IList <string> allowFiieldIds = await _context.MtdFormPartField.Where(x => partIds.Contains(x.MtdFormPart)).Select(x => x.Id).ToListAsync(); fieldIds = allowFiieldIds.Where(x => fieldIds.Contains(x)).ToList(); StackHandler handlerStack = new StackHandler(_context); IList <MtdStoreStack> mtdStoreStack = await handlerStack.GetStackAsync(storeIds, fieldIds); IList <MtdFormPartField> columns = incomer.FieldForColumn.Where(x => fieldIds.Contains(x.Id)).ToList(); IWorkbook workbook = CreateWorkbook(mtdStore, columns, mtdStoreStack); workbook.WriteExcelToResponse(HttpContext, "OrderMakerList.xlsx"); return(Ok()); }
public async Task <IActionResult> PostPageMove() { /* number * 1 - First Page; 2 - back; 3 - forward; */ IFormCollection requestForm = await Request.ReadFormAsync(); string idForm = requestForm["formId"]; string formValue = requestForm["formValue"]; int number = int.Parse(formValue); WebAppUser user = await _userManager.GetUserAsync(User); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id && x.MtdForm == idForm); if (filter == null) { filter = new MtdFilter { SearchNumber = "", SearchText = "" }; await _context.MtdFilter.AddAsync(filter); await _context.SaveChangesAsync(); } int page = filter.Page; switch (number) { case 2: { if (page > 1) { page--; } break; } case 3: { page++; break; } default: { page = 1; break; } } ; filter.Page = page < 0 ? page = 1 : page; _context.MtdFilter.Update(filter); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <MtdFilter> GetFilterAsync() { if (register == null) { register = await _context.MtdFilter .Include(x => x.MtdFilterDate) .Include(m => m.MtdFilterColumn) .FirstOrDefaultAsync(x => x.IdUser == _user.Id && x.MtdForm == IdForm); if (register != null && register.MtdFilterDate != null) { queryMtdStore = queryMtdStore.Where(x => x.Timecr.Date >= register.MtdFilterDate.DateStart.Date & x.Timecr.Date <= register.MtdFilterDate.DateEnd.Date); } } return(register); }
public async Task <IViewComponentResult> InvokeAsync(string idForm, int pageCount) { var user = await _userManager.GetUserAsync(HttpContext.User); int pageSize = 10; int page = 1; MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id && x.MtdForm == idForm); if (filter != null) { page = filter.Page; pageSize = filter.PageSize; } FooterModelView model = new FooterModelView { IdForm = idForm, Page = page, PageSize = pageSize, PageCount = pageCount }; return(View("Default", model)); }
public async Task <IActionResult> PostSearchTextAsync() { IFormCollection requestForm = await Request.ReadFormAsync(); string form = requestForm["indexForm"]; string value = requestForm["indexSearchText"]; WebAppUser user = await _userManager.GetUserAsync(User); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id& x.MtdForm == form); bool old = true; if (filter == null) { old = false; filter = new MtdFilter { IdUser = user.Id, MtdForm = form }; } filter.SearchNumber = ""; filter.SearchText = value; filter.Page = 1; if (old) { _context.MtdFilter.Update(filter); } else { await _context.MtdFilter.AddAsync(filter); } try { await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex.InnerException; } return(Ok()); }
public async Task <IActionResult> PostSerarchIndexAsync() { string form = Request.Form["formId"]; string value = Request.Form["searchNumber"]; var user = await _userManager.GetUserAsync(User); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id& x.MtdForm == form); bool old = true; if (filter == null) { old = false; filter = new MtdFilter { IdUser = user.Id, MtdForm = form }; } filter.SearchNumber = value; filter.Page = 1; filter.SearchText = ""; if (old) { _context.MtdFilter.Update(filter); } else { await _context.MtdFilter.AddAsync(filter); } try { await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex.InnerException; } return(Ok()); }
public async Task <IViewComponentResult> InvokeAsync(string idForm) { List <DisplayData> displayDatas = new List <DisplayData>(); var user = await _userHandler.GetUserAsync(HttpContext.User); List <string> partIds = await _userHandler.GetAllowPartsForView(user, idForm); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id && x.MtdForm == idForm); if (filter != null) { List <MtdFilterField> mtdFilterFields = await _context.MtdFilterField .Include(x => x.MtdTermNavigation) .Include(m => m.MtdFormPartFieldNavigation) .Where(x => x.MtdFilter == filter.Id) .ToListAsync(); foreach (var field in mtdFilterFields) { DisplayData displayData = new DisplayData { Id = field.Id, Header = $"{field.MtdFormPartFieldNavigation.Name} ({field.MtdTermNavigation.Sign})", Value = "", Type = "-field" }; if (field.MtdFormPartFieldNavigation.MtdSysType != 11) { displayData.Value = field.Value; } else { MtdStore mtdStore = await _context.MtdStore.FirstOrDefaultAsync(x => x.Id == field.Value); if (mtdStore != null) { var fieldForList = await _context.MtdFormPartField.Include(m => m.MtdFormPartNavigation) .Where(x => x.MtdFormPartNavigation.MtdForm == mtdStore.MtdForm & x.MtdSysType == 1) .OrderBy(o => o.MtdFormPartNavigation.Sequence).ThenBy(o => o.Sequence).FirstOrDefaultAsync(); if (fieldForList != null) { IList <long> ids = await _context.MtdStoreStack.Where(x => x.MtdStore == mtdStore.Id& x.MtdFormPartField == fieldForList.Id).Select(x => x.Id).ToListAsync(); MtdStoreStackText data = await _context.MtdStoreStackText.FirstOrDefaultAsync(x => ids.Contains(x.Id)); displayData.Value = data.Register; } } } displayDatas.Add(displayData); } MtdFilterDate mtdFilterDate = await _context.MtdFilterDate.FindAsync(filter.Id); if (mtdFilterDate != null) { DisplayData displayDate = new DisplayData() { Id = filter.Id, Header = "Period", Value = $"{mtdFilterDate.DateStart.ToShortDateString()} {mtdFilterDate.DateEnd.ToShortDateString()}", Type = "-date" }; displayDatas.Add(displayDate); } IList <MtdFilterScript> scripts = await _context.MtdFilterScript.Where(x => x.MtdFilter == filter.Id& x.Apply == 1).ToListAsync(); if (scripts != null && scripts.Count > 0) { foreach (var fs in scripts) { DisplayData displayDate = new DisplayData() { Id = fs.Id, Header = "Custom filter", Value = fs.Name, Type = "-script" }; displayDatas.Add(displayDate); } } } DisplayModelView displayModelView = new DisplayModelView { IdForm = idForm, IdFilter = filter == null ? -1 : filter.Id, DisplayDatas = displayDatas }; return(View("Default", displayModelView)); }
public async Task <IList <MtdFilterScript> > GetScriptsAsync() { MtdFilter mtdFilter = await GetFilterAsync(); return(await _context.MtdFilterScript.Where(x => x.MtdFilter == mtdFilter.Id).ToListAsync()); }
public async Task <IActionResult> PostFilterColumnsAsync() { IFormCollection requestForm = await Request.ReadFormAsync(); string idForm = requestForm["indexDataColumnIdForm"]; string data = requestForm["indexDataColumnList"]; string showNumber = requestForm["indexDataColumnNumber"]; string showDate = requestForm["indexDataColumnDate"]; List <string> fieldIds = new List <string>(); if (data.FirstOrDefault() != null && data.Length > 0) { fieldIds = data.Split(",").ToList(); } WebAppUser user = await _userManager.GetUserAsync(User); MtdFilter filter = await _context.MtdFilter.Include(m => m.MtdFilterColumn).FirstOrDefaultAsync(x => x.IdUser == user.Id & x.MtdForm == idForm); if (filter == null) { filter = new MtdFilter { IdUser = user.Id, MtdForm = idForm, SearchNumber = "", SearchText = "", Page = 1, PageSize = 10 }; await _context.MtdFilter.AddAsync(filter); await _context.SaveChangesAsync(); } List <MtdFilterColumn> columns = new List <MtdFilterColumn>(); int seq = 0; foreach (string field in fieldIds.Where(x => x != "")) { seq++; columns.Add(new MtdFilterColumn { MtdFilter = filter.Id, MtdFormPartField = field, Sequence = seq }); } try { filter.ShowNumber = showNumber == "true" ? (sbyte)1 : (sbyte)0; filter.ShowDate = showDate == "true" ? (sbyte)1 : (sbyte)0; _context.MtdFilter.Update(filter); if (filter.MtdFilterColumn != null) { _context.MtdFilterColumn.RemoveRange(filter.MtdFilterColumn); await _context.SaveChangesAsync(); } await _context.MtdFilterColumn.AddRangeAsync(columns); await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex.InnerException; } return(Ok()); }
private async Task SaveFilterField(StringValues valueField, StringValues valueTerm, string result, MtdFilter filter) { int term = int.Parse(valueTerm); MtdFilterField field = new MtdFilterField { MtdFilter = filter.Id, MtdFormPartField = valueField, MtdTerm = term, Value = result }; try { await _context.MtdFilterField.AddAsync(field); await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex.InnerException; } }
public async Task <IActionResult> PostFilterAddAsync() { IFormCollection requestForm = await Request.ReadFormAsync(); string valueField = requestForm["indexInputField"]; string idForm = requestForm["indexInputForm"]; string valueFilter = requestForm["indexInputFilter"]; string valueTerm = requestForm["indexInputTerm"]; string valueFieldList = requestForm[$"{valueField}-inputlist"]; string result = ""; if (valueFilter.FirstOrDefault() != null) { result = valueFilter; } if (valueFieldList.FirstOrDefault() != null) { result = valueFieldList; } WebAppUser user = await _userManager.GetUserAsync(User); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id& x.MtdForm == idForm); if (filter == null) { filter = new MtdFilter { IdUser = user.Id, MtdForm = idForm, SearchNumber = "", SearchText = "", Page = 1, PageSize = 10 }; await _context.MtdFilter.AddAsync(filter); await _context.SaveChangesAsync(); } if (valueField != "period") { await SaveFilterField(valueField, valueTerm, result, filter); } else { string dateStart = requestForm["periodStart"]; string dateFinish = requestForm["periodFinish"]; bool isOkDateStart = DateTime.TryParse(dateStart, out DateTime dateTimeStart); bool isOkDateFinish = DateTime.TryParse(dateFinish, out DateTime dateTimeFinish); if (isOkDateStart && isOkDateFinish) { MtdFilterDate mtdFilterDate = new MtdFilterDate { Id = filter.Id, DateStart = dateTimeStart, DateEnd = dateTimeFinish }; bool isExists = await _context.MtdFilterDate.Where(x => x.Id == filter.Id).AnyAsync(); if (isExists) { _context.MtdFilterDate.Update(mtdFilterDate); } else { await _context.MtdFilterDate.AddAsync(mtdFilterDate); } await _context.SaveChangesAsync(); } } return(Ok()); }
public async Task <IViewComponentResult> InvokeAsync(string idForm) { var user = await _userHandler.GetUserAsync(HttpContext.User); List <string> partIds = await _userHandler.GetAllowPartsForView(user, idForm); IList <MtdFilterColumn> mtdFilterColumns = await _context.MtdFilterColumn .Include(m => m.MtdFormPartFieldNavigation) .Include(x => x.MtdFilterNavigation) .Where(x => x.MtdFilterNavigation.IdUser == user.Id && x.MtdFilterNavigation.MtdForm == idForm) .OrderBy(x => x.Sequence) .ToListAsync(); List <MtdFormPartField> mtdFormPartFields = new List <MtdFormPartField>(); IList <MtdFormPartField> tempFields = await _context.MtdFormPartField .Include(x => x.MtdFormPartNavigation) .Where(x => x.MtdFormPartNavigation.MtdForm == idForm && partIds.Contains(x.MtdFormPart)) .OrderBy(o => o.MtdFormPartNavigation.Sequence).ThenBy(o => o.Sequence) .ToListAsync(); int sequence = 0; foreach (var column in mtdFilterColumns) { var field = tempFields.Where(x => x.Id == column.MtdFormPartField).FirstOrDefault(); if (field != null) { sequence++; field.Sequence = sequence; mtdFormPartFields.Add(field); } } foreach (var field in tempFields) { if (!mtdFilterColumns.Where(x => x.MtdFormPartField == field.Id).Any()) { sequence++; field.Sequence = sequence; mtdFormPartFields.Add(field); } } IList <MtdFormPart> mtdFormParts = mtdFormPartFields.GroupBy(x => x.MtdFormPartNavigation.Id) .Select(g => g.FirstOrDefault(x => x.MtdFormPartNavigation.Id == g.Key).MtdFormPartNavigation) .OrderBy(x => x.Sequence) .ToList(); MtdFilter mtdFilter = await _context.MtdFilter.Where(x => x.MtdForm == idForm && x.IdUser == user.Id).FirstOrDefaultAsync(); bool showNumber = true; bool showDate = true; if (mtdFilter != null) { showNumber = mtdFilter.ShowNumber == 1 ? true : false; showDate = mtdFilter.ShowDate == 1 ? true : false; } ColumnsModelView fieldsModelView = new ColumnsModelView { IdForm = idForm, MtdFormParts = mtdFormParts, MtdFilterColumns = mtdFilterColumns, MtdFormPartFields = mtdFormPartFields, ShowNumber = showNumber, ShowDate = showDate }; return(View(fieldsModelView)); }
public async Task <bool> IsShowNumber() { MtdFilter mtdFilter = await GetFilterAsync(); return(mtdFilter.ShowNumber == 1 ? true : false); }
public async Task <IActionResult> PostExportAsync() { IFormCollection requestForm = await Request.ReadFormAsync(); var data = requestForm["InputFormForExport"]; if (data.FirstOrDefault() == null || data.FirstOrDefault().Equals(string.Empty)) { return(NotFound()); } string idForm = data.FirstOrDefault(); var user = await _userHandler.GetUserAsync(User); List <string> partIds = await _userHandler.GetAllowPartsForView(user, idForm); FilterHandler handlerFilter = new FilterHandler(_context, idForm, user, _userHandler); MtdFilter mtdFilter = await handlerFilter.GetFilterAsync(); if (mtdFilter == null) { return(NotFound()); } Incomer incomer = await handlerFilter.GetIncomerDataAsync(); TypeQuery typeQuery = await handlerFilter.GetTypeQueryAsync(); incomer.PageSize = 1000; OutFlow outFlow = await handlerFilter.GetStackFlowAsync(incomer, typeQuery); IList <MtdStore> mtdStore = outFlow.MtdStores; IList <string> storeIds = mtdStore.Select(s => s.Id).ToList(); IList <string> fieldIds = incomer.FieldForColumn.Select(x => x.Id).ToList(); IList <string> allowFiieldIds = await _context.MtdFormPartField.Where(x => partIds.Contains(x.MtdFormPart)).Select(x => x.Id).ToListAsync(); fieldIds = allowFiieldIds.Where(x => fieldIds.Contains(x)).ToList(); StackHandler handlerStack = new StackHandler(_context); IList <MtdStoreStack> mtdStoreStack = await handlerStack.GetStackAsync(storeIds, fieldIds); IList <MtdFormPartField> columns = incomer.FieldForColumn.Where(x => fieldIds.Contains(x.Id)).ToList(); IWorkbook workbook = CreateWorkbook(mtdStore, columns, mtdStoreStack); var ms = new NpoiMemoryStream { AllowClose = false }; workbook.Write(ms); ms.Flush(); ms.Seek(0, SeekOrigin.Begin); ms.AllowClose = true; return(new FileStreamResult(ms, new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) { FileDownloadName = $"{DateTime.UtcNow:yyyyMMddHHmmss}.xlsx" }); return(Ok()); }
public async Task <IViewComponentResult> InvokeAsync(string idForm) { var user = await _userHandler.GetUserAsync(HttpContext.User); List <string> partIds = await _userHandler.GetAllowPartsForView(user, idForm); MtdFilter filter = await _context.MtdFilter.FirstOrDefaultAsync(x => x.IdUser == user.Id && x.MtdForm == idForm); var query = _context.MtdFormPartField.Include(m => m.MtdFormPartNavigation) .Where(x => x.MtdFormPartNavigation.MtdForm == idForm & x.Active & partIds.Contains(x.MtdFormPart)) .OrderBy(x => x.MtdFormPartNavigation.Sequence).ThenBy(x => x.Sequence); IList <MtdFormPartField> mtdFields; if (filter != null) { List <string> fieldIds = await _context.MtdFilterField.Where(x => x.MtdFilter == filter.Id) .Select(x => x.MtdFormPartField).ToListAsync(); mtdFields = await query.Where(x => !fieldIds.Contains(x.Id)).ToListAsync(); } else { mtdFields = await query.ToListAsync(); } IList <MtdSysTerm> mtdSysTerms = await _context.MtdSysTerm.ToListAsync(); List <SelectorList> storeList = new List <SelectorList>(); foreach (var field in mtdFields.Where(x => x.MtdSysType == 11).ToList()) { string idFormForList = await _context.MtdFormList.Where(x => x.Id == field.Id).Select(x => x.MtdForm).FirstOrDefaultAsync(); MtdFormPartField fieldForList = await _context.MtdFormPartField.Include(m => m.MtdFormPartNavigation) .Where(x => x.MtdFormPartNavigation.MtdForm == idFormForList & x.MtdSysType == 1) .OrderBy(o => o.MtdFormPartNavigation.Sequence).ThenBy(o => o.Sequence).FirstOrDefaultAsync(); if (idFormForList != null) { List <SelecorStore> selecorStores = await _context.MtdStoreStack .Include(x => x.MtdStoreStackText).Where(x => x.MtdFormPartField == fieldForList.Id) .Select(x => new SelecorStore { IdStore = x.MtdStore, Result = x.MtdStoreStackText.Register }) .OrderBy(x => x.Result) .ToListAsync(); SelectorList selectorList = new SelectorList { FieldAim = field, FieldOut = fieldForList, Store = selecorStores }; storeList.Add(selectorList); } } IList <MtdFilterScript> scripts = await _context.MtdFilterScript.Where(x => x.MtdFilter == filter.Id && x.Apply == 0).ToListAsync(); SelectorModelView selector = new SelectorModelView() { IdForm = idForm, MtdFormPartFields = mtdFields, MtdSysTerms = mtdSysTerms, StoreList = storeList, MtdFilterScripts = scripts }; return(View("Default", selector)); }