示例#1
0
        public IHttpActionResult DeleteRegistraion(Guid id)
        {
            ApplicationUser       user        = GetAuthUser();
            TournamentApplication application = _dbContext.TournamentApplications.Find(id);

            if (application != null)
            {
                if (application.UserId == user.Id)
                {
                    _dbContext.TournamentApplications.Remove(application);
                    try
                    {
                        _dbContext.SaveChanges();
                    }
                    catch (DbUpdateException e)
                    {
                        System.Diagnostics.Trace.TraceError("Tournament registration delete error: " + e.Message);
                        return(BadRequest("Something went wrong!"));
                    }
                    return(Ok(id));
                }
                return(NotFound());
            }
            return(NotFound());
        }
示例#2
0
        public async Task <IActionResult> RemoveFromGroup(Guid id)
        {
            if (await UserIsInRole("event-admin"))
            {
                TournamentApplication entity = await _dbContext.TournamentApplications.FindAsync(id);

                if (entity != null)
                {
                    entity.TournamentCSGOGroupId = null;
                    entity.TournamentSC2GroupId  = null;
                    try
                    {
                        await _dbContext.SaveChangesAsync();
                    }
                    catch (DbUpdateException e)
                    {
                        System.Diagnostics.Trace.TraceError("Tournament group participant delete exception: " + e.Message);
                        return(BadRequest("Something went wrong..."));
                    }
                    return(Ok());
                }
                return(NotFound());
            }
            return(Unauthorized());
        }
示例#3
0
        public async Task <IActionResult> ConfirmRegistration(Guid id, TournamentApplication application)
        {
            if (await UserIsInRole("admin"))
            {
                TournamentApplication entity = await _dbContext.TournamentApplications.FindAsync(id);

                if (entity != null)
                {
                    _dbContext.Entry(entity).CurrentValues.SetValues(application);

                    try
                    {
                        await _dbContext.SaveChangesAsync();
                    }
                    catch (DbUpdateException e)
                    {
                        System.Diagnostics.Trace.TraceError("Tournament registration update error: " + e.Message);
                        return(BadRequest("Something went wrong!"));
                    }
                    return(Ok(application));
                }
                return(NotFound());
            }
            return(Unauthorized());
        }
示例#4
0
        public async Task <IActionResult> AddToGroup(Guid id, TournamentApplication participant)
        {
            TournamentGroup entity;

            if (await UserIsInRole("event-admin"))
            {
                entity = await _dbContext.TournamentCSGOGroups.FindAsync(id);

                if (entity == null)
                {
                    entity = await _dbContext.TournamentSC2Groups.FindAsync(id);

                    if (entity != null)
                    {
                        TournamentApplication app = await _dbContext.TournamentApplications.FindAsync(participant.Id);

                        if (app == null)
                        {
                            return(NotFound());
                        }

                        app.TournamentSC2GroupId = id;
                        try
                        {
                            await _dbContext.SaveChangesAsync();
                        }
                        catch (DbUpdateException e)
                        {
                            System.Diagnostics.Trace.TraceError("Tournament group participant add exception: " + e.Message);
                            return(BadRequest("Something went wrong..."));
                        }
                        return(Ok());
                    }
                    return(NotFound());
                }
                else
                {
                    TournamentApplication app = await _dbContext.TournamentApplications.FindAsync(participant.Id);

                    if (app == null)
                    {
                        return(NotFound());
                    }

                    app.TournamentCSGOGroupId = id;
                    try
                    {
                        await _dbContext.SaveChangesAsync();
                    }
                    catch (DbUpdateException e)
                    {
                        System.Diagnostics.Trace.TraceError("Tournament group participant add exception: " + e.Message);
                        return(BadRequest("Something went wrong..."));
                    }
                    return(Ok());
                }
            }
            return(Unauthorized());
        }
示例#5
0
        public async Task <IActionResult> DeleteRegistraion(Guid id)
        {
            ApplicationUser user = await GetAuthUser();

            TournamentApplication application = await _dbContext.TournamentApplications.FindAsync(id);

            if (application?.UserId == user.Id || await UserIsInRole("admin"))
            {
                _dbContext.TournamentApplications.Remove(application);
                try
                {
                    await _dbContext.SaveChangesAsync();
                }
                catch (DbUpdateException e)
                {
                    System.Diagnostics.Trace.TraceError("Tournament registration delete error: " + e.Message);
                    return(BadRequest("Something went wrong!"));
                }
                return(Ok(id));
            }
            return(NotFound());
        }
示例#6
0
        public async Task <IHttpActionResult> Register(TournamentApplication application)
        {
            if (ModelState.IsValid)
            {
                Company         c    = _dbContext.Companies.Find(application.CompanyId);
                ApplicationUser user = GetAuthUser();
                if (application.Game == Game.StarCraft2)
                {
                    if (string.IsNullOrEmpty(application.BattleNetId))
                    {
                        return(BadRequest("Моля попълнете Battle.net battle tag!"));
                    }
                    if (_dbContext.TournamentApplications.Where(a => a.BattleNetId == application.BattleNetId && a.TournamentId == application.TournamentId).SingleOrDefault() != null)
                    {
                        return(BadRequest($"Вече има направена регистрация с battle tag {application.BattleNetId}!"));
                    }
                    if (user.BattleNetId == null || user.BattleNetId != application.BattleNetId)
                    {
                        _dbContext.Users.Find(user.Id).BattleNetId = application.BattleNetId;
                    }
                }
                else
                {
                    if (application.TeamId == Guid.Empty)
                    {
                        return(BadRequest("Моля попълнете отбор във формата за регистрация!"));
                    }
                    if (_dbContext.TournamentApplications.Where(a => a.TeamId == application.TeamId && a.TournamentId == application.TournamentId).SingleOrDefault() != null)
                    {
                        return(BadRequest("Вече има направена регистрация за този отбор!"));
                    }
                }
                if (c == null)
                {
                    _dbContext.Companies.Add(new Company()
                    {
                        Name = application.CompanyId
                    });
                }
                application.UniqueHash(_dbContext);
                application.UserId = user.Id;
                _dbContext.TournamentApplications.Add(application);

                try
                {
                    _dbContext.SaveChanges();
                }
                catch (DbUpdateException e)
                {
                    System.Diagnostics.Trace.TraceError("Tournament registration error: " + e.Message);
                    return(BadRequest("Нещо се обърка..."));
                }

                try
                {
                    string gameMsg = application.Game == Game.CSGO ? "Вашата регистрация е за участие в лигата по CS:GO" :
                                     $"Вашата регистрация е за участие в лигата по StarCraft II, с battle tag {application.BattleNetId}";
                    string message = $@"Здравей, { user.UserName },
                                    <p>Успешно получихме вашата регистрация за Esports Бизнес Лигата. В регистрацията сте посочили, че текущо работите в <b>{ application.CompanyId }</b>. {gameMsg}. Регистрация ще бъде потвърдена след като преведете таксата за участие (60лв. с ДДС за лигата по StarCraft II, или 300лв. с ДДС за лигата по CS:GO).</p>
                                    <p>Банковата ни сметка е</p>
                                    <ul>
                                        <li>Име на Банката: <b>{ AppInfo.Config.bank }</b></li>
                                        <li>Титуляр: <b>{ AppInfo.Config.bankAccountOwner }</b></li>
                                        <li>Сметка: <b>{ AppInfo.Config.bankAccount }</b></span></li>
                                        <li>BIC: <b>{ AppInfo.Config.bic }</b></li>
                                    </ul>
                                    <p>Моля при превода да сложите в основанието уникалния код, който сме генерирали за вашата регистрация: <b>{ application.Hash }</b>. Можете да намерите кода и през вашият профил на сайта ни.</p>
                                    <p>Ако ви е нужна фактура, моля да се свържете с нас на <a href='mailto:[email protected]'>[email protected]</a>!</p>
                                    <p>Заповядайте и в нашият <a href='https://discord.gg/bnTcpa9'>дискорд сървър</a>!</p>
                                    <p>Поздрави от екипа на Bellum Gens!</p>
                                    <a href='https://eb-league.com' target='_blank'>https://eb-league.com</a>";
                    await EmailServiceProvider.SendNotificationEmail(application.Email, "Регистрацията ви е получена", message).ConfigureAwait(false);
                }
                catch (Exception e)
                {
                    System.Diagnostics.Trace.TraceError("Tournament registration error: " + e.Message);
                }
                return(Ok(application));
            }
            return(BadRequest("Не успяхме да вилидираме информацията..."));
        }