Ejemplo n.º 1
0
        public ReturnAction Save(AdvogadoModel model, Guid id)
        {
            ReturnAction retorno = new ReturnAction();

            int idSituacao = 0, idAreaAtuacao = 0;

            if (!string.IsNullOrEmpty(model.ListSituacao))
            {
                foreach (var item in model.ListSituacao.Split("-"))
                {
                    if (!int.TryParse(item, out idSituacao) || new SituacaoSelect().GetById(idSituacao) == null)
                    {
                        retorno.Mensagens.Add($"Situação não encontrada");
                        break;
                    }
                }
            }

            if (!string.IsNullOrEmpty(model.ListAreaAtuacao))
            {
                foreach (var item in model.ListAreaAtuacao.Split("-"))
                {
                    if (!int.TryParse(item, out idAreaAtuacao) || new AreaAtuacaoSelect().GetById(idAreaAtuacao) == null)
                    {
                        retorno.Mensagens.Add($"Área de Atuação não encontrada");
                        break;
                    }
                }
            }

            var obj = new Advogado(id, model.IdGeoCidade, model.Nome, model.NumOrdem, model.IFoto, model.NomePai, model.NomeMae, model.DateInscricaoOAB, model.DateAtualizacao);

            foreach (var item in obj.Get)
            {
                retorno.Mensagens.Add(item.Value);
            }

            if (!retorno.Valido)
            {
                return(retorno);
            }

            db.Entry(obj).State = EntityState.Added;
            db.SaveChanges();

            //foto não é obrigatoria
            if (model.IFoto != null)
            {
                var directoryRoot = $"{ Directory.GetCurrentDirectory() }\\wwwroot\\images\\Avatar";
                var memoryStream  = new MemoryStream();
                model.IFoto.CopyToAsync(memoryStream);

                FileStream file = new FileStream($"{ directoryRoot }\\{ obj.Foto }", FileMode.Create, FileAccess.Write);
                memoryStream.WriteTo(file);
                file.Close();
                memoryStream.Close();
            }

            if (!string.IsNullOrEmpty(model.ListSituacao))
            {
                foreach (var item in model.ListSituacao.Split("-"))
                {
                    var sit = new AdvogadoSituacao(id, obj.Id, Convert.ToInt32(item));
                    if (sit.EhValido())
                    {
                        db.Entry(sit).State = EntityState.Added;
                    }
                }
            }

            if (!string.IsNullOrEmpty(model.ListAreaAtuacao))
            {
                foreach (var item in model.ListAreaAtuacao.Split("-"))
                {
                    var sit = new AdvogadoAreaAtuacao(id, obj.Id, Convert.ToInt32(item));
                    if (sit.EhValido())
                    {
                        db.Entry(sit).State = EntityState.Added;
                    }
                }
            }

            if (!string.IsNullOrEmpty(model.ListSituacao) || !string.IsNullOrEmpty(model.ListAreaAtuacao))
            {
                db.SaveChanges();
            }

            retorno.objRetorno = obj.Id;

            return(retorno);
        }
Ejemplo n.º 2
0
        public ReturnAction Save(AdvogadoModel model, Guid id)
        {
            ReturnAction retorno = new ReturnAction();

            int idSituacao = 0, idAreaAtuacao = 0;

            if (!model.Delete)
            {
                if (string.IsNullOrEmpty(model.ListSituacao))
                {
                    retorno.Mensagens.Add($"A Situação não foi informada");
                }
                else
                {
                    foreach (var item in model.ListSituacao.Split("-"))
                    {
                        if (!int.TryParse(item, out idSituacao) || new SituacaoSelect().GetById(idSituacao) == null)
                        {
                            retorno.Mensagens.Add($"Situação não encontrada");
                            break;
                        }
                    }
                }

                if (!string.IsNullOrEmpty(model.ListAreaAtuacao))
                {
                    foreach (var item in model.ListAreaAtuacao.Split("-"))
                    {
                        if (!int.TryParse(item, out idAreaAtuacao) || new AreaAtuacaoSelect().GetById(idAreaAtuacao) == null)
                        {
                            retorno.Mensagens.Add($"Área de Atuação não encontrada");
                            break;
                        }
                    }
                }
            }

            var obj = new AdvogadoSelect().Get(model.Id, id);

            if (obj == null)
            {
                retorno.Mensagens.Add("Advogado não encontrado");
            }

            if (retorno.Valido)
            {
                obj.ChangeEntity(model.IdGeoCidade, model.Nome, model.NumOrdem, model.NomePai, model.NomeMae, model.DateInscricaoOAB, model.DateAtualizacao, model.Delete);

                foreach (var item in obj.Get)
                {
                    retorno.Mensagens.Add(item.Value);
                }
            }
            else
            {
                return(retorno);
            }

            db.Entry(obj).State = EntityState.Modified;
            db.SaveChanges();

            new AdvogadoSituacaoDelete().DeleteAll(model.Id);
            if (!model.Delete)
            {
                foreach (var item in model.ListSituacao.Split("-"))
                {
                    var sit = new AdvogadoSituacao(id, obj.Id, Convert.ToInt32(item));
                    if (sit.EhValido())
                    {
                        db.Entry(sit).State = EntityState.Added;
                    }
                }
            }

            new AdvogadoAreaAtuacaoDelete().DeleteAll(model.Id);
            if (!model.Delete && !string.IsNullOrEmpty(model.ListAreaAtuacao))
            {
                foreach (var item in model.ListAreaAtuacao.Split("-"))
                {
                    var sit = new AdvogadoAreaAtuacao(id, obj.Id, Convert.ToInt32(item));
                    if (sit.EhValido())
                    {
                        db.Entry(sit).State = EntityState.Added;
                    }
                }
            }

            if (!model.Delete)
            {
                db.SaveChanges();
            }

            retorno.objRetorno = obj.Id;

            return(retorno);
        }