public async Task <IEnumerable <FighterModel> > GetFightersByFilter([FromBody] FighterFilterModel filter) { try { Response.StatusCode = 200; return(fighterService.GetFighterModelsByFilter(filter)); } catch (Exception ex) { Response.StatusCode = 500; HandleException(ex); return(new List <FighterModel>()); } }
public List <FighterModel> GetOrderedListForBrackets(FighterFilterModel filter) { var fighters = GetFighterModelsByFilter(filter); var count = fighters.Count; var bracketSize = GetBracketsSize(fighters.Count()); for (int i = 0; i < bracketSize - count; i++) { fighters.Add(new FighterModel() { }); } return(Distribute(fighters)); }
public async Task <IActionResult> GetBracketsFile([FromBody] FighterFilterModel filter) { try { Response.StatusCode = 200; var file = await bracketsFileService.GetBracketsFileAsync(filter); return(File(file.ByteArray, file.ContentType)); } catch (Exception ex) { Response.StatusCode = 500; HandleException(ex); return(null); } }
public async Task <CustomFile> GetBracketsFileAsync(FighterFilterModel filter) { var models = fighterService.GetOrderedListForBrackets(filter); var settings = GetSettings(models.Count); if (settings != null) { var templateFilepath = Path.Combine(env.WebRootPath, FilePath.BRACKETS_FILE_FOLDER_NAME, FilePath.BRACKETS_FILE_NAME_MASK + settings.Count.ToString() + FilePath.EXCEL_EXTENSION); if (!File.Exists(templateFilepath)) { throw new Exception($"Bracket file {templateFilepath} does not exist"); } byte[] byteArray; var stream = new FileStream(templateFilepath, FileMode.Open); using (var excelPackage = new ExcelPackage(stream)) { var sheet = excelPackage?.Workbook?.Worksheets[1]; if (sheet != null) { for (int i = 0; i < settings.Count; i++) { var fighter = models.ElementAtOrDefault(i); sheet.Cells[settings.NameCells[i]].Value = !string.IsNullOrEmpty(fighter.FirstName) ? $"{i+1}. {fighter.FirstName} {fighter.LastName}" : " - "; } } byteArray = excelPackage.GetAsByteArray(); excelPackage.Dispose(); } stream.Dispose(); return(new CustomFile { ByteArray = byteArray, ContentType = ContentTypes.EXCEL_CONTENT_TYPE }); } else { throw new Exception($"Brackets settings are not found for count {models.Count}"); } }
public List <FighterModel> GetFighterModelsByFilter(FighterFilterModel filter) { IQueryable <Fighter> fighters = GetFightersByFilter(filter); return(GetModels(fighters)); }
private IQueryable <Fighter> GetFightersByFilter(FighterFilterModel filter) { return(GetFighters().Where(f => filter.CategoryIds.Contains(f.CategoryId) && filter.WeightDivisionIds.Contains(f.WeightDivisionId))); }