Exemplo n.º 1
0
        public bool BloquearOperacao(long id, string usuarioCorrente)
        {
            string login = null;

            using (var context = Context)
            {
                login = LoginUsuarioPermitido(context.CreateObjectSet <T>().SingleOrDefault(ent => ent.Id == id));
            }

            if (string.IsNullOrEmpty(login))
            {
                return(false);
            }

            return(!GerenciadorAcesso.UsuarioCorrentePertence(Tipo.Editor) &&
                   !usuarioCorrente.Equals(login));
        }
        public virtual void Salvar(TBaseFormModel model)
        {
            Validar(model.Entidade);

            using (var context = Context)
            {
                Humano humano = (Humano)context.GetObjectByKey(context.CreateEntityKey("Humano", model.Entidade));

                if (humano is T)
                {
                    context.ApplyOriginalValues("Humano", humano);

                    T entidade = (T)humano;

                    PreValoresCorrente(entidade, model.Entidade);

                    AplicarValores(context, entidade, false);

                    context.ApplyCurrentValues("Humano", entidade);

                    PosValoresCorrente(context, model.Entidade);

                    foreach (var item in model.Lixeira)
                    {
                        context.DeleteObject(context.GetObjectByKey(new EntityKey(string.Format("{0}.{1}", GerenciadorContexto.Nome, item.Key), "Id", item.Value)));
                    }
                }
                else
                {
                    if (!GerenciadorAcesso.UsuarioCorrentePertence(Tipo.Narrador))
                    {
                        ValidarPersonagemInicial(context, model.Entidade);
                    }

                    #region Copiando

                    model.Entidade.Id                = 0;
                    model.Entidade.Nome              = humano.Nome;
                    model.Entidade.JogadorId         = humano.JogadorId;
                    model.Entidade.CronicaId         = humano.CronicaId;
                    model.Entidade.Virtude           = humano.Virtude;
                    model.Entidade.Vicio             = humano.Vicio;
                    model.Entidade.Tamanho           = humano.Tamanho;
                    model.Entidade.Experiencia       = humano.Experiencia;
                    model.Entidade.Moralidade        = humano.Moralidade;
                    model.Entidade.Vitalidade        = humano.Vitalidade;
                    model.Entidade.DanoContusao      = humano.DanoContusao;
                    model.Entidade.DanoLetal         = humano.DanoLetal;
                    model.Entidade.DanoAgravado      = humano.DanoAgravado;
                    model.Entidade.Vontade           = humano.Vontade;
                    model.Entidade.VontadeTemporaria = humano.VontadeTemporaria;
                    model.Entidade.Penalidade        = humano.Penalidade;
                    model.Entidade.Forca             = humano.Forca;
                    model.Entidade.Destreza          = humano.Destreza;
                    model.Entidade.Vigor             = humano.Vigor;
                    model.Entidade.Presenca          = humano.Presenca;
                    model.Entidade.Manipulacao       = humano.Manipulacao;
                    model.Entidade.Autocontrole      = humano.Autocontrole;
                    model.Entidade.Inteligencia      = humano.Inteligencia;
                    model.Entidade.Raciocinio        = humano.Raciocinio;
                    model.Entidade.Perseveranca      = humano.Perseveranca;
                    model.Entidade.Armamento         = humano.Armamento;
                    model.Entidade.ArmasDeFogo       = humano.ArmasDeFogo;
                    model.Entidade.Briga             = humano.Briga;
                    model.Entidade.Conducao          = humano.Conducao;
                    model.Entidade.Dissimulacao      = humano.Dissimulacao;
                    model.Entidade.Esportes          = humano.Esportes;
                    model.Entidade.Furto             = humano.Furto;
                    model.Entidade.Sobrevivencia     = humano.Sobrevivencia;
                    model.Entidade.Astucia           = humano.Astucia;
                    model.Entidade.Empatia           = humano.Empatia;
                    model.Entidade.Expressao         = humano.Expressao;
                    model.Entidade.Intimidacao       = humano.Intimidacao;
                    model.Entidade.Manha             = humano.Manha;
                    model.Entidade.Persuasao         = humano.Persuasao;
                    model.Entidade.Socializacao      = humano.Socializacao;
                    model.Entidade.TratoAnimais      = humano.TratoAnimais;
                    model.Entidade.Ciencias          = humano.Ciencias;
                    model.Entidade.Erudicao          = humano.Erudicao;
                    model.Entidade.Informatica       = humano.Informatica;
                    model.Entidade.Investigacao      = humano.Investigacao;
                    model.Entidade.Medicina          = humano.Medicina;
                    model.Entidade.Ocultismo         = humano.Ocultismo;
                    model.Entidade.Oficios           = humano.Oficios;
                    model.Entidade.Politica          = humano.Politica;

                    model.Entidade.Especializacoes = new List <HumanoEspecializacao>();

                    foreach (var item in humano.Especializacoes)
                    {
                        HumanoEspecializacao obj = new HumanoEspecializacao();
                        obj.HumanoId         = model.Entidade.Id;
                        obj.EspecializacaoId = item.EspecializacaoId;
                        model.Entidade.Especializacoes.Add(obj);
                    }

                    model.Entidade.Vantagens = new List <HumanoVantagem>();

                    foreach (var item in humano.Vantagens)
                    {
                        HumanoVantagem obj = new HumanoVantagem();
                        obj.HumanoId   = model.Entidade.Id;
                        obj.VantagemId = item.VantagemId;
                        obj.Nivel      = item.Nivel;
                        model.Entidade.Vantagens.Add(obj);
                    }

                    model.Entidade.Armas = new List <HumanoArma>();

                    foreach (var item in humano.Armas)
                    {
                        HumanoArma obj = new HumanoArma();
                        obj.HumanoId = model.Entidade.Id;
                        obj.ArmaId   = item.ArmaId;
                        model.Entidade.Armas.Add(obj);
                    }

                    model.Entidade.Itens = new List <HumanoItem>();

                    foreach (var item in humano.Itens)
                    {
                        HumanoItem obj = new HumanoItem();
                        obj.HumanoId = model.Entidade.Id;
                        obj.ItemId   = item.ItemId;
                        model.Entidade.Itens.Add(obj);
                    }

                    #endregion

                    AplicarValores(context, model.Entidade, true);

                    context.DeleteObject(humano);
                    context.AddObject("Humano", model.Entidade);
                }

                context.SaveChanges();
            }
        }