Exemple #1
0
 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>());
     }
 }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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}");
            }
        }
Exemple #5
0
        public List <FighterModel> GetFighterModelsByFilter(FighterFilterModel filter)
        {
            IQueryable <Fighter> fighters = GetFightersByFilter(filter);

            return(GetModels(fighters));
        }
Exemple #6
0
 private IQueryable <Fighter> GetFightersByFilter(FighterFilterModel filter)
 {
     return(GetFighters().Where(f => filter.CategoryIds.Contains(f.CategoryId) &&
                                filter.WeightDivisionIds.Contains(f.WeightDivisionId)));
 }