public StatusRequisicao deletePost(Params_deletePost parans)
        {
            var diretorio = HttpContext.Current.Server.MapPath("~/") + "imagens\\usuarios\\" + parans.cloudId + "\\";
            var resposta = new StatusRequisicao();

            using (var dbTrans = db.Database.BeginTransaction())
            {
                try
                {
                    fotoposts post = db.fotoposts.Where(fp => fp.Usuarios_cloudId == parans.cloudId && fp.IdPost == parans.postId).FirstOrDefault();
                    db.fotoposts.Remove(post);
                    File.Delete(diretorio + parans.postId + ".png");
                    db.SaveChanges();
                    dbTrans.Commit();
                    resposta.sucesso = true;
                    resposta.mensagem = "Post deletado";
                }
                catch (Exception e)
                {
                    dbTrans.Rollback();
                    resposta.sucesso = false;
                    resposta.mensagem = e.Message;
                }

            }

            return resposta;
        }
 public StatusRequisicao avaliaPost(Params_avaliaPost parans)
 {
     var resposta = new StatusRequisicao();
     try
     {
         var usuario = db.usuarios.Where(u => u.cloudId == parans.cloudId).FirstOrDefault();
         usuario.QtdeAvaliacao++;
         db.SaveChanges();
         if (db.avaliacoes.Where(a => a.FotoPosts_IdPost == parans.postId).Count() < db.fotoposts.Include(fp => fp.usuarios).Where(fp => fp.IdPost == parans.postId).FirstOrDefault().usuarios.Alcance)
         {
             var minhaAvaliacao = db.avaliacoes.Create();
             minhaAvaliacao.FotoPosts_IdPost = parans.postId;
             minhaAvaliacao.Notas_IdNota = parans.categoriaId;
             db.avaliacoes.Add(minhaAvaliacao);
             db.SaveChanges();
         }
         resposta.sucesso = true;
     }
     catch (Exception e)
     {
         resposta.sucesso = false;
         resposta.mensagem = e.Message;
     }
     return resposta;
 }
 public StatusRequisicao pegaTicket(parans_TicketInfo parans)
 {
     var resposta = new StatusRequisicao();
     resposta.sucesso = false;
     
         var prom = db.promocao.Where(pro => pro.codigo_pro == parans.promocaoId ).FirstOrDefault();
         var proControl = new promocaoController();
         if ((proControl.getQuantidadeTicketsPromocao(prom.codigo_pro) > prom.totalTickets_pro) && prom.limitada_pro == true)
         {
             resposta.sucesso = false;
             resposta.mensagem = "Desculpe, outra pessoa pegou o ticket primeiro.";
             return resposta;
         }
         using (var dbTrans = db.Database.BeginTransaction())
         {
             try{
                 promocaorequerida myTicket = db.promocaorequerida.Create();
                 DateTime dtCadastro = DateTime.Now;
                 myTicket.datacad_proreq = dtCadastro;
                 myTicket.promocao_proreq = parans.promocaoId;
                 myTicket.userCloudId_proreq = parans.clienteId;
                 myTicket.codVoucher_proreq = "";
                 //Por isso Vale24h ^_^
                 myTicket.validade_proreq = prom.limitada_pro ? dtCadastro.AddHours(24) : prom.fim_pro;
                 db.promocaorequerida.Add(myTicket);
                 db.SaveChanges();
                 DateTime aux = myTicket.validade_proreq;
                 myTicket.codVoucher_proreq = myTicket.validade_proreq.ToString("yyyyMMddHHmmss") + '.' + myTicket.promocao_proreq + '.' + myTicket.codigo_proreq;
                 db.SaveChanges();
                 dbTrans.Commit();
                 resposta.sucesso = true;
                 TicketInfo retInfo = new TicketInfo();
                 retInfo.ativo = myTicket.ativa_proreq;
                 retInfo.dataAquisicao = myTicket.datacad_proreq;
                 retInfo.id = myTicket.codigo_proreq;
                 retInfo.validade = myTicket.validade_proreq;
                 retInfo.voucher = myTicket.codVoucher_proreq;
                 resposta.dados = retInfo;
             }
             catch (Exception e)
             {
                 dbTrans.Rollback();
                 resposta.sucesso = false;
                 resposta.mensagem = e.Message;
             }
             
         }
     
     return resposta;
 }
        public StatusRequisicao postar(Params_postar parans)
        {
            var diretorio = HttpContext.Current.Server.MapPath("~/") + "imagens\\usuarios\\" + parans.cloudId + "\\";
            var resposta = new StatusRequisicao();

            using (var dbTrans = db.Database.BeginTransaction())
            {
                try
                {
                    fotoposts post = db.fotoposts.Create();
                    post.DataPost  = DateTime.Now;
                    post.Usuarios_cloudId = parans.cloudId;
                    post.ImagemPost = "";
                    db.fotoposts.Add(post);
                    db.SaveChanges();

                    byte[] byteArray = Convert.FromBase64String(parans.imagem);
                    Image result = null;
                    ImageFormat format = ImageFormat.Png;
                    result = new Bitmap(new MemoryStream(byteArray));
                    using (Image imageToExport = result)
                    {
                        (new FileInfo(diretorio)).Directory.Create();
                        imageToExport.Save(diretorio + post.IdPost.ToString() + "." + format.ToString(), format);
                    }

                    post.ImagemPost = "usuarios/" + parans.cloudId + "/" + post.IdPost.ToString();

                    db.SaveChanges();
                    dbTrans.Commit();
                    resposta.sucesso = true;
                    //Por isso MeuLook ^_^
                    resposta.mensagem = "Look publicado !";
                }
                catch (Exception e)
                {
                    dbTrans.Rollback();
                    resposta.sucesso = false;
                    resposta.mensagem = e.Message;
                }

            }

            return resposta;
        }
 public StatusRequisicao liberaTicket(parans_LiberaTicket parans)
 {
     var resposta = new StatusRequisicao();
     try
     {
         var ticket = db.promocaorequerida.Where(t => t.codigo_proreq == parans.idTicket).FirstOrDefault();
         var numPro = ticket.promocao_proreq;
         db.promocaorequerida.Remove(ticket);
         db.SaveChanges();
         resposta.sucesso = true;
         var promController = new promocaoController();
         var promParans = new promocaoController.parans_InfoPromocao();
         promParans.promocaoId = numPro;
         resposta.dados = promController.getInfoPromocao(promParans);
         return resposta;
     }
     catch (Exception e)
     {
         resposta.sucesso = false;
         resposta.mensagem = e.Message;
         return resposta;
     }
 }