public static CompetitionResponseModel ToCompetitionForAdminResponseModel(CompetitionDTO competitionDTO)
        {
            StringBuilder stringBuilder = new StringBuilder();
            var           competitionForAdminResponseModel = new CompetitionResponseModel()
            {
                Id          = competitionDTO.Id,
                Skill       = competitionDTO.Skill.Name,
                DateOfBegin = competitionDTO.DateTimeBegin.ToString(dateFormat),
                DateOfEnd   = competitionDTO.DateTimeEnd.ToString(dateFormat)
            };

            foreach (var stageDTO in competitionDTO.Stages)
            {
                var stage = new StageResponseModel()
                {
                    Id   = stageDTO.Id,
                    Type = stageDTO.StageType.Name
                };
                foreach (var taskDTO in stageDTO.Tasks)
                {
                    var task = new TaskResponseModel()
                    {
                        Id              = taskDTO.Id,
                        Description     = taskDTO.Description,
                        TaskDateOfBegin = taskDTO.DateTimeBegin.ToString(dateFormat)
                    };
                    var dateOfEnd = taskDTO.DateTimeBegin + taskDTO.DurationTime;
                    task.TaskDateOfEnd = dateOfEnd.ToString(dateFormat);
                    task.IsActual      = dateOfEnd < DateTime.Now;
                    foreach (var address in taskDTO.Addresses)
                    {
                        stringBuilder.Append(address + "; ");
                    }
                    task.Addresses = stringBuilder.ToString();
                    stage.Tasks.Add(task);
                }
                competitionForAdminResponseModel.Stages.Add(stage);
            }
            return(competitionForAdminResponseModel);
        }
Example #2
0
        public async Task <IHttpActionResult> Get(int id)
        {
            try
            {
                var competition = await competitionReadService.GetByIdAsync(id);

                var result = new CompetitionResponseModel
                {
                    Id          = competition.Id,
                    Title       = competition.Title,
                    Type        = competition.Type,
                    Date        = competition.Date,
                    Location    = competition.Location,
                    Description = competition.Description
                };

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }