Пример #1
0
        public void Insert(InfracaoModel infracao)
        {
            int i = GetLastId();

            i++;
            infracao.Id = i;
            Server   s     = Server.Instance();
            Database local = new Database("local", s);
            Collection <MembroModel>   membro    = new Collection <MembroModel>("membros", local);
            Collection <InfracaoModel> infracoes = new Collection <InfracaoModel>("infra", local);

            infracoes.InsertDocument(infracao);
            if (membro.Documents.Any(x => x.DiscordId == infracao.IdInfrator))
            {
                MembroModel update = membro.Documents.Find(x => x.DiscordId == infracao.IdInfrator);
                update.Infracoes.Add(i);
                new Membro().Update(x => x.DiscordId == infracao.IdInfrator, update);
            }
            else
            {
                int id = new Membro().GetLastId();
                id++;
                List <int> list = new List <int>();
                list.Add(i);
                MembroModel m = new MembroModel
                {
                    Id        = id,
                    DiscordId = infracao.IdInfrator,
                    Infracoes = list
                };
                new Membro().Insert(m);
            }
        }
Пример #2
0
        public void Insert(CensoModel item)
        {
            int i = GetLastId();

            i++;
            item.Id = i;
            Server   s     = Server.Instance();
            Database local = new Database("local", s);
            Collection <CensoModel>  censo  = new Collection <CensoModel>("censo", local);
            Collection <MembroModel> membro = new Collection <MembroModel>("membros", local);

            if (!censo.Documents.Any(x => x.DiscordId == item.DiscordId))
            {
                censo.InsertDocument(item);
            }
            if (membro.Documents.Any(x => x.DiscordId == item.DiscordId))
            {
                var m = new Membro().Find(x => x.DiscordId == item.DiscordId);
                m.Censo = i;
                new Membro().Update(x => x.Id == m.Id, m);
            }
            else
            {
                var in2 = new Membro().GetLastId();
                in2++;
                MembroModel m = new MembroModel
                {
                    Id        = in2,
                    DiscordId = item.DiscordId,
                    Censo     = i
                };
                new Membro().Insert(m);
            }
        }
        private async Task <IActionResult> CriarOuAtualizarMembro(MembroModel membroModel)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var membroDto = Mapper.Map <MembroDto> (membroModel);
            await _membroCadastro.ArmazenarAsync(membroDto);

            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> Delete(MembroModel membroModel)
        {
            if (membroModel == null)
            {
                return(RedirectToAction("Index"));
            }

            var membro = Mapper.Map <Membro> (membroModel);
            await _membroRepositorio.RemoverAsync(membro);

            return(RedirectToAction("Index"));
        }
Пример #5
0
        public void Delete(InfracaoModel infracao)
        {
            Server   s     = Server.Instance();
            Database local = new Database("local", s);
            Collection <InfracaoModel> infracoes = new Collection <InfracaoModel>("infra", local);
            Collection <MembroModel>   membro    = new Collection <MembroModel>("membros", local);

            if (membro.Documents.Any(x => x.DiscordId == infracao.IdInfrator))
            {
                MembroModel update = membro.Documents.Find(x => x.DiscordId == infracao.IdInfrator);
                update.Infracoes.Remove(infracao.Id);
                new Membro().Update(x => x.DiscordId == infracao.IdInfrator, update);
            }
            infracoes.DeleteDocument(x => x.Id == infracao.Id);
        }
Пример #6
0
        public UsuarioRepository Run(Repository value)
        {
            UsuarioRepository r = (UsuarioRepository)value;

            try
            {
                int _empresaId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["empresaId"]);

                Usuario entity = null;
                if (seguranca_db.Usuarios.Where(info => info.keyword == r.keyword && info.empresaId == _empresaId).Count() > 0)
                {
                    entity = seguranca_db.Usuarios.Where(info => info.keyword == r.keyword && info.empresaId == _empresaId).FirstOrDefault();
                    // Verifica se o código de ativação não expirou
                    if (entity.dt_keyword < Funcoes.Brasilia())
                    {
                        throw new ArgumentException("Data de ativação do cadastro expirou.");
                    }
                    else
                    {
                        #region Ativa o Usuário no módulo de Segurança e limpa a chave no cadastro de usuários
                        entity.keyword    = null;
                        entity.dt_keyword = null;
                        entity.situacao   = "A";

                        seguranca_db.Entry(entity).State = EntityState.Modified;
                        #endregion

                        #region Ativar o Apostador
                        Membro          m               = db.Membros.Where(info => info.Email == entity.login).FirstOrDefault();
                        MembroModel     MembroModel     = new MembroModel(this.db, this.seguranca_db);
                        MembroViewModel MembroViewModel = MembroModel.MapToRepository(m);

                        MembroViewModel.IndSituacao = "A";
                        MembroViewModel.uri         = r.uri;

                        MembroViewModel = MembroModel.Update(MembroViewModel);
                        if (MembroViewModel.mensagem.Code > 0)
                        {
                            throw new ArgumentException(MembroViewModel.mensagem.MessageBase);
                        }
                        #endregion

                        r.mensagem = MembroViewModel.mensagem;
                    }
                }
                else
                {
                    throw new ArgumentException("Cadastro já ativado ou código de verificação incorreto");
                }
            }
            catch (ArgumentException ex)
            {
                r.mensagem = new Validate()
                {
                    Code = 999, Message = MensagemPadrao.Message(999).ToString(), MessageBase = ex.Message
                };
            }
            catch (App_DominioException ex)
            {
                r.mensagem = ex.Result;

                if (ex.InnerException != null)
                {
                    r.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                }
                else
                {
                    r.mensagem.MessageBase = new App_DominioException(ex.Result.Message, GetType().FullName).Message;
                }
            }
            catch (DbUpdateException ex)
            {
                r.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message;
                if (r.mensagem.MessageBase.ToUpper().Contains("REFERENCE"))
                {
                    if (r.mensagem.MessageBase.ToUpper().Contains("DELETE"))
                    {
                        r.mensagem.Code        = 16;
                        r.mensagem.Message     = MensagemPadrao.Message(16).ToString();
                        r.mensagem.MessageType = MsgType.ERROR;
                    }
                    else
                    {
                        r.mensagem.Code        = 28;
                        r.mensagem.Message     = MensagemPadrao.Message(28).ToString();
                        r.mensagem.MessageType = MsgType.ERROR;
                    }
                }
                else if (r.mensagem.MessageBase.ToUpper().Contains("PRIMARY"))
                {
                    r.mensagem.Code        = 37;
                    r.mensagem.Message     = MensagemPadrao.Message(37).ToString();
                    r.mensagem.MessageType = MsgType.WARNING;
                }
                else if (r.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY"))
                {
                    r.mensagem.Code        = 54;
                    r.mensagem.Message     = MensagemPadrao.Message(54).ToString();
                    r.mensagem.MessageType = MsgType.WARNING;
                }
                else
                {
                    r.mensagem.Code        = 44;
                    r.mensagem.Message     = MensagemPadrao.Message(44).ToString();
                    r.mensagem.MessageType = MsgType.ERROR;
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                r.mensagem = new Validate()
                {
                    Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First()
                };
            }
            catch (Exception ex)
            {
                r.mensagem.Code        = 17;
                r.mensagem.Message     = MensagemPadrao.Message(17).ToString();
                r.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                r.mensagem.MessageType = MsgType.ERROR;
            }
            return(r);
        }
Пример #7
0
        public async Task censo(CommandContext ctx, [Description("editar/fazer")] string operacao = "fazer")
        {
            switch (operacao)
            {
            case "fazer":
                MembroModel membro = new Membro().Find(x => x.DiscordId == ctx.Member.Id);
                if (membro == null)
                {
                    membro = new MembroModel
                    {
                        DiscordId = ctx.Member.Id
                    };
                    new Membro().Insert(membro);
                }
                if (membro.Censo != 0)
                {
                    await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("Um censo comunitário já existe.\n" +
                                                                         $"Use `{ctx.Prefix}{ctx.Command.Name} editar` para editar o seu censo!"));
                }
                else
                {
                    await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("O censo será feito **no privado**. Uma mensagem com mais detalhes será enviada."));

                    var Dm = await ctx.Member.CreateDmChannelAsync();

                    CensoModel _Censo = new CensoModel
                    {
                        Timestamp = DateTime.Now,
                        DiscordId = ctx.Member.Id
                    };
                    var msg = await Dm.SendMessageAsync(embed : EmbedBase.InputEmbed("Idade"));

                    var responce = await Dm.GetNextMessageAsync(x => x.Author == ctx.User, TimeSpan.FromMinutes(30));

                    int idade = 0;
                    responce.Result.Content.Split(" ").ToList().ForEach(x => int.TryParse(x, out idade));
                    if (idade != 0)
                    {
                        _Censo.Idade = idade;
                    }
                    int.TryParse(responce.Result.Content, out idade);
                    if (idade != 0)
                    {
                        _Censo.Idade = idade;
                    }
                    await msg.ModifyAsync(embed : EmbedBase.InputEmbed("Email"));

                    responce = await responce.Result.GetNextMessageAsync();

                    string email = "";
                    Regex  check = new Regex(@"[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*");
                    email = check.Match(responce.Result.Content).ToString();
                    if (!string.IsNullOrWhiteSpace(email))
                    {
                        _Censo.Email = email;
                    }
                    await msg.ModifyAsync(embed : EmbedBase.InputEmbed("Jogos"));

                    responce = await responce.Result.GetNextMessageAsync();

                    _Censo.Jogos = responce.Result.Content;
                    await msg.ModifyAsync(embed : EmbedBase.InputEmbed("Você é brasileiro(a) ? Responda com [sim/não]"));

                    responce = await responce.Result.GetNextMessageAsync();

                    if (responce.Result.Content.ToLowerInvariant()[0] == 's')
                    {
                        await msg.ModifyAsync(embed : EmbedBase.InputEmbed("Sigla do seu estado"));

                        responce = await responce.Result.GetNextMessageAsync();

                        if (Enum.GetNames(typeof(Estado)).Contains(responce.Result.Content.ToUpperInvariant()))
                        {
                            _Censo.UF = (Estado)Enum.Parse(typeof(Estado), responce.Result.Content.ToUpperInvariant());
                        }
                        else
                        {
                            _Censo.UF = Estado.OTHER;
                        }
                    }
                    else
                    {
                        _Censo.UF = Estado.OTHER;
                    }
                    await msg.ModifyAsync(embed : EmbedBase.InputEmbed("Como chegou à UBGE"));

                    responce = await responce.Result.GetNextMessageAsync();

                    _Censo.Origem = responce.Result.Content;
                    await msg.ModifyAsync(embed : EmbedBase.InputEmbed("Fala alguma outra língua alem do português?"));

                    responce = await responce.Result.GetNextMessageAsync();

                    _Censo.Idiomas = responce.Result.Content;
                    new Logic.Censo().Insert(_Censo);
                    await msg.ModifyAsync(embed : EmbedBase.OutputEmbed("Censo Concluído."));
                }
                break;

            case "editar":
                CensoModel censo = new Logic.Censo().Find(x => x.DiscordId == ctx.Member.Id);
                if (censo == null)
                {
                    await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("Você não fez o censo ainda.\n" +
                                                                         "Faça-o com {ctx.Prefix}`{ctx.Command.Name} fazer`"));
                }
                else
                {
                    await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("O censo será editado no privado. Uma mensagem será enviada em breve!"));

                    var Dm = await ctx.Member.CreateDmChannelAsync();

                    List <string> options = new List <string> {
                        "Email", "Idade", "Idiomas", "Jogos", "Como chegou à UBGE"
                    };
                    var message = await Dm.SendMessageAsync(embed : EmbedBase.OrderedListEmbed(options, "Selecione uma das opções"));

                    var responce = await Dm.GetNextMessageAsync(x => x.Author.Id == ctx.Member.Id);

                    if (char.IsDigit(responce.Result.Content[0]))
                    {
                        var value = int.Parse(responce.Result.Content[0].ToString());
                        await message.ModifyAsync(embed : EmbedBase.InputEmbed($"Digite o(s) novo(s) {options[value]}:"));

                        responce = await responce.Result.GetNextMessageAsync();
                        await Modify(censo, value, message, responce);
                    }
                    else
                    {
                        var option = options.Find(x => x.ToLowerInvariant().Contains(responce.Result.Content.ToLowerInvariant()));
                        if (!String.IsNullOrWhiteSpace(option))
                        {
                            var value = options.IndexOf(option);
                            await message.ModifyAsync(embed : EmbedBase.InputEmbed($"Digite o(s) novo(s) {options[value]}:"));

                            responce = await responce.Result.GetNextMessageAsync();
                            await Modify(censo, value, message, responce);
                        }
                    }
                }
                break;
            }
        }
 public async Task <IActionResult> SalvarMembro(MembroModel membroModel)
 {
     return(await CriarOuAtualizarMembro(membroModel));
 }