public async Task<ActionResult> Add(CompetitionViewModel competitionModel)
        {
            if (!string.IsNullOrEmpty(competitionModel.LogoImage))
            {
                var tmpPath = Server.MapPath("~/App_Data/tmp/");
                var logoImagePath = Server.MapPath("~/App_Data/Logo_Image/");

                await
                    CopyFileAsync(tmpPath + competitionModel.LogoImage,
                        logoImagePath + competitionModel.LogoImage);
            }

            if (competitionModel.IsRegisterActive && competitionModel.IsPrintCardActive == false)
            {
                competitionModel.PrintCardStartDate = competitionModel.RegisterEndDate.Value.AddDays(3);
            }

            var competition = new DomainClasses.Competition
            {
                Name = competitionModel.Name,
                ReadyStartDate = competitionModel.ReadyStartDate,
                ReadyEndDate = competitionModel.ReadyEndDate,
                RegisterStartDate = competitionModel.RegisterStartDate,
                RegisterEndDate = competitionModel.RegisterEndDate,
                IsReadyActive = competitionModel.IsReadyActive,
                IsRegisterActive = competitionModel.IsRegisterActive,
                IsPrintCardActive = competitionModel.IsPrintCardActive,
                LogoImage = competitionModel.LogoImage,
                PrintCardEndDate = competitionModel.PrintCardEndDate,
                PrintCardStartDate = competitionModel.PrintCardStartDate,
                Rule = competitionModel.Rule.ToSafeHtml(),
                MaxCommonTechnicalStaffs = competitionModel.MaxCommonTechnicalStaffs
            };

            _competitionService.Add(competition);

            await _dbContext.SaveChangesAsync();

            return Json(new { id = competition.Id });
        }
        public async Task<ActionResult> Edit(CompetitionViewModel competitionModel)
        {
            //if (!ModelState.IsValid) throw null;


            var selectedCompetition = await _competitionService.Find(competitionModel.Id);

            if (selectedCompetition.LogoImage != competitionModel.LogoImage)
            {
                var tmpPath = Server.MapPath("~/App_Data/tmp/");
                var logoImagePath = Server.MapPath("~/App_Data/Logo_Image/");
                await
                    CopyFileAsync(tmpPath + competitionModel.LogoImage,
                        logoImagePath + competitionModel.LogoImage);

                try
                {
                    System.IO.File.Delete(logoImagePath + selectedCompetition.LogoImage);
                }
                catch (Exception)
                {

                }
            }

            selectedCompetition.IsPrintCardActive = competitionModel.IsPrintCardActive;
            selectedCompetition.IsReadyActive = competitionModel.IsReadyActive;
            selectedCompetition.IsRegisterActive = competitionModel.IsRegisterActive;

            selectedCompetition.LogoImage = competitionModel.LogoImage;

            selectedCompetition.Name = competitionModel.Name;
            selectedCompetition.PrintCardEndDate = competitionModel.PrintCardEndDate;
            selectedCompetition.PrintCardStartDate = competitionModel.PrintCardStartDate;
            selectedCompetition.ReadyEndDate = competitionModel.ReadyEndDate;
            selectedCompetition.ReadyStartDate = competitionModel.ReadyStartDate;

            selectedCompetition.RegisterStartDate = competitionModel.RegisterStartDate;
            selectedCompetition.RegisterEndDate = competitionModel.RegisterEndDate;
            selectedCompetition.Rule = competitionModel.Rule.ToSafeHtml();

            selectedCompetition.MaxCommonTechnicalStaffs = competitionModel.MaxCommonTechnicalStaffs;


            await _dbContext.SaveChangesAsync();

            return new HttpStatusCodeResult(HttpStatusCode.OK);
        }