Exemplo n.º 1
0
        public bool publicaArquivo(Models.ServiceModel.ItemBuscaNome arquivo)
        {
            var endereco         = Context.Request.UserHostAddress;
            DescricaoArquivo da  = null;
            ItemBuscaNome    ibn = null;
            ClienteD         cd  = null;

            try
            {
                //Verifica se a Descrição do arquivo está cadastrada
                if (db.DescricaoArquivo.Find(arquivo.DescricaoArquivo.md5Arquivo) == null)
                {
                    da            = new DescricaoArquivo();
                    da.md5Arquivo = arquivo.DescricaoArquivo.md5Arquivo;
                    da.tamanho    = arquivo.DescricaoArquivo.tamanho;
                    db.DescricaoArquivo.Add(da);
                    db.SaveChanges();
                }
                else
                {
                    da = db.DescricaoArquivo.Find(arquivo.DescricaoArquivo.md5Arquivo);
                }

                //Verifica se já existe um item de busca com o mesmo nome e a mesma descrição
                if (!db.ItemBuscaNome.Any(x => x.nome == arquivo.nome && x.md5Arquivo == da.md5Arquivo))
                {
                    ibn = new ItemBuscaNome();
                    ibn.DescricaoArquivo = da;
                    ibn.nome             = arquivo.nome;
                    db.ItemBuscaNome.Add(ibn);
                }
                else
                {
                    ibn = db.ItemBuscaNome.First(x => x.nome == arquivo.nome && x.md5Arquivo == da.md5Arquivo);
                }

                //Verifica se o cliente já está cadastrado
                if (db.ClienteD.Find(endereco) == null)
                {
                    cd          = new ClienteD();
                    cd.endereco = endereco;
                    db.ClienteD.Add(cd);
                }
                else
                {
                    cd = db.ClienteD.Find(endereco);
                }

                db.SaveChanges();

                //Verifica se o cliente já possui o arquivo
                if (!db.ClienteD.Find(endereco).DescricaoArquivo.Contains(da))
                {
                    db.ClienteD.Find(endereco).DescricaoArquivo.Add(da);
                }
                db.SaveChanges();
            }
            //Se não conseguir gravar no banco retorna false
            catch (Exception e)
            {
                return(false);
            }

            return(true);
        }