private async Task <Models.CreditoMetricas> GetCredito(string UserId, Repository.MongoRep repMongo = null) { if (repMongo == null) { repMongo = new Repository.MongoRep("", _settings); } var list = await repMongo.ListarCreditos(UserId); if (list == null || (list.Count == 0)) { return(null); } list = list.Where(w => //TODO: debitos na conta... (w.Obj.DataValidade >= DateTime.Now)).ToList(); if (list == null || (list.Count == 0)) { return(null); } var cred = new Models.CreditoMetricas() { DataCredito = list.Max(m => m.Obj.DataCredito), DataCriacao = DateTime.Now, DataValidade = list.Max(m => m.Obj.DataValidade), Qtd = list.Sum(m => m.Obj.Qtd), Debito = list.Sum(m => m.Obj.Debito), UserId = UserId }; return(cred); }
public async Task <List <SobrePosicaoResponse> > Get(string id, string UserId) { try { Repository.MongoRep repMongo = new Repository.MongoRep(UserId, _appSettings, UserId); var _id = new ObjectId(id); var lstSobrep = (await repMongo.ListarByOrderId <InfluencerComment>(_id)).ToList(); if (lstSobrep != null) { var lstSobrePosicaoResponse = new List <SobrePosicaoResponse>(); foreach (var sobrep in lstSobrep) { var sobrePosicaoResponse = new SobrePosicaoResponse(); sobrePosicaoResponse.Profile = sobrep.Obj.Influencer.Obj.profile_picture_url; sobrePosicaoResponse.Username = sobrep.Obj.Influencer.Obj.username; sobrePosicaoResponse.Before = sobrep.Obj.LstFollowersOld.Count(); sobrePosicaoResponse.After = sobrep.Obj.LstFollowers.Count(); lstSobrePosicaoResponse.Add(sobrePosicaoResponse); } return(lstSobrePosicaoResponse); } return(null); } catch (Exception ex) { return(null); } }
public async Task <ActionResult> Pagamento(Models.DTO.PagamentoPage pagamentoPage) { var _id = HttpContext.Session.GetString("UsuarioFull_id"); var UserId = HttpContext.Session.GetString("UserId"); var repMongo = new Repository.MongoRep("", _settings, UserId); var usuario = await repMongo.ListarById <Models.Usuario>(new MongoDB.Bson.ObjectId(_id)); pagamentoPage.Usuario.UserId = UserId; var result = await CreatePay(pagamentoPage, _id.ToString() + "-" + DateTime.Now.ToLongTimeString().Replace(":", "-"), UserId, repMongo, pagamentoPage.codPlan); result.StatusPagamento = "Pendente"; await repMongo.GravarOne <Models.DTO.PagamentoPage>(result); if (usuario.FirstOrDefault().Obj.Tipo == "1") { return(RedirectToAction("MinhasAnalises", "Relatorios")); } else { return(RedirectToAction("HistoricoMetricas", "Relatorios")); } }
public IActionResult Index() { var UserId = HttpContext.Session.GetString("UserId"); if (!string.IsNullOrEmpty(UserId)) { var NomeAgencia = HttpContext.Session.GetString("nomeagencia"); if (string.IsNullOrEmpty(NomeAgencia)) { return(RedirectToAction("MinhasAnalises", "relatorios")); } else { return(RedirectToAction("HistoricoMetricas", "relatorios")); } } try { var repMongo = new Repository.MongoRep("", _settings); var crowlerInfo = repMongo.GetInfoHomeCrowler().ConfigureAwait(false).GetAwaiter().GetResult(); ViewBag.CrowlerInfo = crowlerInfo; } catch (Exception x) { } HttpContext.Session.Remove("userType"); HttpContext.Session.Remove("userNameTitle"); return(View()); }
private async Task <Models.DTO.PagamentoPage> CreatePay(Models.DTO.PagamentoPage pay, string _id, string UserId, Repository.MongoRep mongoRep, string plan) { Wirecard.WirecardClient WC = null; WC = await SetAmbiente(WC); var OrderId = Guid.NewGuid().ToString(); try { pay.OrderId = OrderId; pay.Usuario.Telefone = Helper.ApenasNumeros(pay.Usuario.Telefone); var usuario = pay.Usuario; var sub = await CreateSignature(new Address() { City = usuario.City, Complement = usuario.Complement, District = usuario.District, Street = usuario.Street, StreetNumber = usuario.Number, ZipCode = usuario.PostalCode.Replace("-", ""), State = usuario.State, Country = "BRA" }, new Credit_Card { Holder_Name = pay.Usuario.Nome, Number = pay.cardNumber, Expiration_Year = pay.expirationYear, Expiration_Month = pay.expirationMonth }, usuario.Cpf, usuario.DataNascimento, usuario.Email, usuario.Nome + " " + usuario.Sobrenome, usuario.Ddd, usuario.Telefone, plan, OrderId, _id); //var cliente = await CriarClienteAsync(pay.Usuario, OrderId, WC); //var pedido = await CriarPedidoAsync(pay, cliente.Id, WC); //var pagamento = await CriarPagamentoAsync(cliente, pedido, pay, WC); //pay.customerResponse = cliente; //pay.orderResponse = pedido; //pay.paymentResponse = pagamento; if (sub != null && ((sub.Alerts != null) && (sub.Alerts.Count() > 0))) { var resultAlerts = JsonConvert.SerializeObject(sub.Alerts).ToString(); var repMongo = new Repository.MongoRep("", _settings, ""); await repMongo.GravarOne <string>("Pagamento: {" + sub.Code + "}" + resultAlerts); sub.Alerts = null; } pay.subscriptionResponse = sub; return(pay); } catch (Exception ex) { var text = ex.Message.ToString(); return(null); } }
public async Task <int?> ValorCredito(string UserId, Repository.MongoRep repMongo) { var _credito = await GetCredito(UserId, repMongo); if (_credito != null) { return(_credito.Qtd - _credito.Debito); } return(null); }
public async Task <ActionResult> Agencias() { var repMongo = new Repository.MongoRep("", _settings, ""); try { var lstUsuarios = await repMongo.ListarAgencias(); return(View(lstUsuarios)); } catch (Exception ex) { return(RedirectToAction("Index")); } }
public async Task <ActionResult> Creditar(string id, int qtd) { var repMongo = new Repository.MongoRep("", _settings, ""); var credito = new Models.CreditoMetricas() { UserId = id, Qtd = qtd, DataCredito = DateTime.Now, Debito = 0, DataValidade = DateTime.Now.AddMonths(1), DataCriacao = DateTime.Now }; await repMongo.GravarOne <Models.CreditoMetricas>(credito); return(RedirectToAction("Agencias")); }
public async Task <string> Transactions(Models.PagSeguroTransaction dto) { string URLConstant = "v2/transactions"; //?email=" + Email + "&token=" + Token; try { dto.email = Email; dto.token = Token; var client = new RestClient(url + URLConstant); //"https://ws.sandbox.pagseguro.uol.com.br/v2/transactions"); var request = new RestRequest(Method.POST); var keyValueContent = dto.ToKeyValue(); var formUrlEncodedContent = new FormUrlEncodedContent(keyValueContent); var urlEncodedString = await formUrlEncodedContent.ReadAsStringAsync(); request.AddParameter("application/x-www-form-urlencoded; charset=ISO-8859-1", urlEncodedString, ParameterType.RequestBody); request.AddHeader("Accept", "application/xml;charset=ISO-8859-1"); request.AddHeader("content-type", "application/x-www-form-urlencoded; charset=ISO-8859-1"); IRestResponse response = client.Execute(request); if (response.ResponseStatus == ResponseStatus.Completed) { Repository.MongoRep rep = new Repository.MongoRep(dto.senderEmail, _appSettings); await rep.GravarOne <string>(response.Content); XmlSerializer serializer = new XmlSerializer(typeof(webMetrics.Models.TransactionPagseguro.Transaction)); using (TextReader reader = new StringReader(response.Content)) { var rest = (webMetrics.Models.TransactionPagseguro.Transaction)serializer.Deserialize(reader); //if (rest != null) //{ // throw new Exception(rest.Error.Message.ToString()); //} return(rest.Code); } return(""); } } catch (Exception ex) { throw ex; } return(null); }
public async Task <List <InfluencerFollower> > FindTipoAudiencia(string key, string metricasInsigths) { Repository.MongoRep repMongo = new Repository.MongoRep(metricasInsigths, _appSettings, key); var _userObj = await repMongo.ListarById <Models.Usuario>(new ObjectId(key)); var lst = await ListUsers(key); var usersString = ""; if (lst.Count > 0) { lst.ForEach(s => { usersString += "," + s.Username; }); } var ot = await GetUsers( _userObj.FirstOrDefault().Obj.UsuarioInstagram, _userObj.FirstOrDefault().Obj.access_token_page, usersString); var infs = new List <InfluencerFollower>(); foreach (var it in lst) { infs.Add(new InfluencerFollower() { AvgComments = it.LengthComment, DateCreated = DateTime.Now, Followers = ot.Where(w => w.business_discovery.username == it.Username).FirstOrDefault().business_discovery.followers_count, Username = it.Username, MassFollower = (ot.Where(w => w.business_discovery.username == it.Username).FirstOrDefault().error == null) && (it.LengthComment < 20), Influencer = (ot.Where(w => w.business_discovery.username == it.Username).FirstOrDefault().error == null) && (it.LengthComment >= 20), Suspect = (ot.Where(w => w.business_discovery.username == it.Username).FirstOrDefault().error != null) && (it.LengthComment < 20), RealPerson = (ot.Where(w => w.business_discovery.username == it.Username).FirstOrDefault().error != null) && (it.LengthComment >= 20), }); } return(infs); }
public async Task <PlanResponse> criarPlano(string code, string name, string description, int amount) { Wirecard.WirecardClient WC = null; WC = await SetAmbiente(WC); try { var newPlan = new PlanRequest() { Code = code, Name = name, Description = description, Amount = amount, Interval = new Interval() { Unit = (code.Contains("year") ? "YEAR":"MONTH"), Length = 1 }, Payment_Method = "CREDIT_CARD" }; var plan = await WC.Signature.CreatePlan(newPlan); var planNew = new PlanResponse() { Code = code, Name = name, Description = description, Amount = amount, Payment_Method = "CREDIT_CARD" }; var repMongo = new Repository.MongoRep("", _settings, ""); await repMongo.GravarOne <PlanResponse>(planNew); return(plan); } catch (Exception ex) { return(null); } }
public async Task <IActionResult> Resumo() { var repMongo = new Repository.MongoRep("", _settings); var resp = await repMongo.Listar <Models.DTO.InfluencersResumo>("danieljromualdo"); var inf = resp.FirstOrDefault().Obj; #region Emotions var avgFaceDetection = inf.AvgFaceDetection; var listaFaceDetection = avgFaceDetection.Joy.ToString() + "," + avgFaceDetection.Sorrow.ToString() + "," + avgFaceDetection.Anger.ToString() + "," + avgFaceDetection.Surprise.ToString() + ""; var cabecalhoFaceDetection = "'Alegre','Tristeza','Raiva','Surpresa'"; ViewBag.CabecalhoFaceDetection = cabecalhoFaceDetection; ViewBag.ListaFaceDetection = listaFaceDetection; #endregion ViewBag.Markers = inf.Markers; return(View(inf)); }
public async Task <List <FollowerComments> > ListUsers(string UserId) { Repository.MongoRep repMongo = new Repository.MongoRep("Metricas Insigths", _appSettings, UserId); var lstFollowers = new List <FollowerComments>(); var lstMongoMedias = await repMongo.Listar <Models.Graph.Media>(UserId); if (lstMongoMedias != null && (lstMongoMedias.Count > 0)) { lstMongoMedias.ForEach(f => { if (f.Obj != null && (f.Obj.data != null && (f.Obj.data.Count > 0))) { f.Obj.data.ForEach(d => { if (d.comments != null && (d.comments.data != null && (d.comments.data.Count > 0))) { d.comments.data.ForEach(c => { lstFollowers.Add(new FollowerComments() { Username = c.username, LengthComment = c.text.Length }); }); } }); } }); } return(lstFollowers.GroupBy(g => new { g.Username }) .Select(s => new FollowerComments() { Username = s.Key.Username, LengthComment = Convert.ToInt32((lstFollowers.Where(w => w.Username == s.Key.Username).Average(l => l.LengthComment))) }) .Distinct().ToList()); }
public async Task <bool> GravarNovoUsuario([FromUri] string token, [FromUri] string idpagina, [FromUri] string userid) { try { Repository.MongoRep repMongo = new Repository.MongoRep("MetricaInsights", _appSettings); var usuarioNovo = new Models.Usuario() { access_token_page = token, name_page = "", UsuarioInstagram = idpagina, UserId = userid, Tipo = "5", AgenciaUserId = "" }; await repMongo.GravarOne <Models.Usuario>(usuarioNovo); return(true); } catch (Exception ex) { return(false); } }
public async Task <string> ListMedia(List <string> lstUsuarioId, string UserId) { try { Repository.MongoRep repMongo = new Repository.MongoRep(UserId, _appSettings, UserId); var OrderId = ObjectId.GenerateNewId(); var lstInfsUsuarios = new List <InfluencerComment>(); foreach (var id in lstUsuarioId) { var lstFollowers = new List <string>(); var _id = new ObjectId(id); var lstMongoUser = await repMongo.ListarById <Models.Graph.Usuario>(_id); if (lstMongoUser != null && (lstMongoUser.Count > 0)) { var userId = lstMongoUser.FirstOrDefault().UsuarioId; var lstMongoMedias = await repMongo.Listar <Models.Graph.Media>(userId); if (lstMongoMedias != null && (lstMongoMedias.Count > 0)) { lstMongoMedias.ForEach(f => { if (f.Obj != null && (f.Obj.data != null && (f.Obj.data.Count > 0))) { f.Obj.data.ForEach(d => { if (d.comments != null && (d.comments.data != null && (d.comments.data.Count > 0))) { d.comments.data.ForEach(c => { lstFollowers.Add(c.username); }); } }); } }); } var inf = new InfluencerComment(); inf.OrderId = OrderId; inf.DtCreated = DateTime.Now; inf.LstFollowers = lstFollowers.Distinct().ToList(); inf.LstFollowersOld = lstFollowers.Distinct().ToList(); inf.Influencer = lstMongoUser.FirstOrDefault(); inf.UsuarioId = id; lstInfsUsuarios.Add(inf); } } foreach (var infSingle in lstInfsUsuarios) { foreach (var infUsuario in lstInfsUsuarios) { if (infSingle.UsuarioId != infUsuario.UsuarioId) { infSingle.LstFollowers = infSingle.LstFollowersOld.Except(infUsuario.LstFollowersOld).ToList(); } } await repMongo.GravarOne <InfluencerComment>(infSingle); } return(OrderId.ToString()); } catch (Exception ex) { return(""); } }
// GET: Pagamento public async Task <ActionResult> Index(string tipo) { byte[] _out; if (!HttpContext.Session.TryGetValue("UsuarioFull_id", out _out)) { return(RedirectToAction("ComeceAqui", "Relatorios", new { msg = 99 })); } var _id = HttpContext.Session.GetString("UsuarioFull_id"); var UserId = HttpContext.Session.GetString("UserId"); var repMongo = new Repository.MongoRep("", _settings, UserId); var usuario = await repMongo.ListarById <Models.Usuario>(new MongoDB.Bson.ObjectId(_id)); var pagamentoPage = new Models.DTO.PagamentoPage() { Usuario = usuario.FirstOrDefault().Obj }; string planoCode = ""; if (tipo == Convert.ToInt32(EnumTipoPagamento.Influenciador).ToString()) {//Influenciador pagamentoPage.Quantidade = 1; pagamentoPage.Valor = 99M; pagamentoPage.Total = 99M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-99"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-99", "Plano-" + tipo.ToString() + "-Influencer", "Um influencer - 99 reais", 9900); } planoCode = "Plan" + tipo.ToString() + "-99"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas10).ToString()) {//Agencia pagamentoPage.Quantidade = 10; pagamentoPage.Valor = 99.9M; pagamentoPage.Total = 999M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-999"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-999", "Plano-" + tipo.ToString() + "-Influencer", "10 influenciadores - 999 reais", 99900); } planoCode = "Plan" + tipo.ToString() + "-999"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas30).ToString()) {//Agencia pagamentoPage.Quantidade = 30; pagamentoPage.Valor = 93.3M; pagamentoPage.Total = 2799M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-2799"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-2799", "Plano-" + tipo.ToString() + "-Influencer", "30 influenciadores - 2799 reais", 279900); } planoCode = "Plan" + tipo.ToString() + "-2799"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas90).ToString()) {//Agencia pagamentoPage.Quantidade = 90; pagamentoPage.Valor = 53.32M; pagamentoPage.Total = 4799M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-4799"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-4799", "Plano-" + tipo.ToString() + "-Influencer", "90 influenciadores - 4799 reais", 479900); } planoCode = "Plan" + tipo.ToString() + "-4799"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.InfluenciadorYear).ToString()) {//Influenciador pagamentoPage.Quantidade = 1; pagamentoPage.Valor = 999M; pagamentoPage.Total = 999M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-yearY" + tipo.ToString() + "999"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-yearY" + tipo.ToString() + "999", "Plano-" + tipo.ToString() + "-Influencer", "Um influencer - 999 reais - Ano", 99900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-yearY" + tipo.ToString() + "999"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas180Year).ToString()) {//Agencia pagamentoPage.Quantidade = 180; pagamentoPage.Valor = 52.77M; pagamentoPage.Total = 9499M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-Y" + tipo.ToString() + "9499"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-Y" + tipo.ToString() + "9499", "Plano-" + tipo.ToString() + "-Influencer", "180 influenciadores - 9499 reais", 949900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-Y" + tipo.ToString() + "9499"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas300Year).ToString()) {//Agencia pagamentoPage.Quantidade = 300; pagamentoPage.Valor = 49.33M; pagamentoPage.Total = 14799M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-Y" + tipo.ToString() + "14799"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-Y" + tipo.ToString() + "14799", "Plano-" + tipo.ToString() + "-Influencer", "300 influenciadores - 14799 reais", 1479900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-Y" + tipo.ToString() + "14799"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.AgenciasMarcas600Year).ToString()) {//Agencia pagamentoPage.Quantidade = 600; pagamentoPage.Valor = 49.165M; pagamentoPage.Total = 29499M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan-Y" + tipo.ToString() + "29499"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan-Y" + tipo.ToString() + "29499", "Plano-" + tipo.ToString() + "-Influencer", "600 influenciadores - 29499 reais", 2949900); if (plano == null) { RedirectToAction("login"); } } planoCode = "Plan-Y" + tipo.ToString() + "29499"; } if (tipo == Convert.ToInt32(EnumTipoPagamento.Testes).ToString()) {//TESTES pagamentoPage.Quantidade = 1; pagamentoPage.Valor = 1.00M; pagamentoPage.Total = 1M; var planServer = await repMongo.ListarPlano <PlanResponse>("Plan" + tipo.ToString() + "-TST"); if (planServer == null || (planServer.Count() == 0)) { var plano = await criarPlano("Plan" + tipo.ToString() + "-TST", "Plano-" + tipo.ToString() + "-Influencer", "Um influencer - 1 real", 100); } planoCode = "Plan" + tipo.ToString() + "-TST"; } ViewBag.hddPlan = planoCode; return(View(pagamentoPage)); }
public async Task <bool> GetPayment(string pagamentoId) { try { Wirecard.WirecardClient WC = null; WC = await SetAmbiente(WC); var _id = new ObjectId(pagamentoId); var repMongo = new Repository.MongoRep("", _settings, ""); var lstPagamentos = await repMongo.ListarById <Models.DTO.PagamentoPage>(_id); if (lstPagamentos != null) { var userId = lstPagamentos.FirstOrDefault().UsuarioId; var _pagamentoAtual = lstPagamentos.FirstOrDefault().Obj; var _pagamentoAtualContractual = lstPagamentos.FirstOrDefault(); if (_pagamentoAtual.paymentResponse != null) { #region Pagamentos Comuns var result = await WC.Payment.Consult(_pagamentoAtual.paymentResponse.Id); if (result.Status != _pagamentoAtual.paymentResponse.Status) { _pagamentoAtual.paymentResponse.Status = result.Status; if (_pagamentoAtual.StatusPagamento == "Pendente" && result.Status == "AUTHORIZED")//Pago { _pagamentoAtual.StatusPagamento = "Pago"; } //Mudar Status await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>() { _id = _id, Obj = _pagamentoAtual }); if (_pagamentoAtual.StatusPagamento == "Pago") { //Inserir credito se for authorizado o pagamento var credito = new Models.CreditoMetricas() { UserId = userId, Qtd = _pagamentoAtual.Quantidade, DataCredito = DateTime.Now, Debito = 0, DataValidade = DateTime.Now.AddMonths(1), DataCriacao = DateTime.Now }; await repMongo.GravarOne <Models.CreditoMetricas>(credito); } } if (result.Status == "CANCELLED" && _pagamentoAtual.StatusPagamento == "Pendente") { _pagamentoAtual.StatusPagamento = "Cancelado"; //Mudar Status await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>() { _id = _id, Obj = _pagamentoAtual }); } if (result.Status == "REFUNDED" && _pagamentoAtual.StatusPagamento == "Pendente") { _pagamentoAtual.StatusPagamento = "Cancelado"; //Mudar Status await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>() { _id = _id, Obj = _pagamentoAtual }); } if (result.Status == "REFUNDED" && _pagamentoAtual.StatusPagamento == "Pago") { _pagamentoAtual.StatusPagamento = "Cancelado"; //Mudar Status await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>() { _id = _id, Obj = _pagamentoAtual }); } #endregion } else { if (_pagamentoAtual.subscriptionResponse != null) { #region Invoices var lstResult = await WC.Signature.ListSignatureInvoices(_pagamentoAtual.subscriptionResponse.Code); foreach (var result in lstResult.Invoices) { if (_pagamentoAtual.Invoices == null) { _pagamentoAtual.Invoices = new List <Invoice>(); } var _invoice = _pagamentoAtual.Invoices.Where(w => w.Id == result.Id).FirstOrDefault(); if (_invoice == null) { _pagamentoAtual.Invoices.Add(result); _invoice = result; } if (result.Status.Code == 3)//Pago { _pagamentoAtual.StatusPagamento = "Pago"; _pagamentoAtual.NextInvoice = DateTime.Now.AddMonths(1); //Mudar Status await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>() { _id = _id, Obj = _pagamentoAtual }); //Inserir credito se for authorizado o pagamento var credito = new Models.CreditoMetricas() { UserId = userId, Qtd = _pagamentoAtual.Quantidade, DataCredito = DateTime.Now, Debito = 0, DataValidade = _pagamentoAtual.codPlan.Contains("year")? DateTime.Now.AddMonths(12) :DateTime.Now.AddMonths(1), DataCriacao = DateTime.Now }; await repMongo.GravarOne <Models.CreditoMetricas>(credito); //Email de pagamento var usuarioId = await repMongo.FindFilter <Models.Usuario>("Obj.UserId", _pagamentoAtual.Usuario.UserId); var envio = SenderEmail.Pagamento(_pagamentoAtual.Usuario.Email, usuarioId._id.ToString()); } if (_invoice.Status != result.Status) { if (result.Status.Code == 4)//Problemas no pagto { _pagamentoAtual.StatusPagamento = "Problemas"; //Mudar Status await repMongo.AlterarStatusPagamento(new ContractClass <Models.DTO.PagamentoPage>() { _id = _id, Obj = _pagamentoAtual }); } } } _pagamentoAtualContractual.Obj = _pagamentoAtual; await repMongo.AlterarInvoices(_pagamentoAtualContractual); #endregion } } } return(true); } catch (Exception ex) { return(false); } }
public async Task <ActionResult> Index() { var repMongo = new Repository.MongoRep("", _settings, ""); var lstUsuarios = await repMongo.ListarUsersAtivos(); var idUsuarios = lstUsuarios .Select(s => s._id.ToString()).Distinct().ToList(); var idAgencias = lstUsuarios.Where(w => w.Obj.AgenciaUserId != null && !string.IsNullOrEmpty(w.Obj.AgenciaUserId)) .Select(s => new BsonObjectId(new ObjectId(s.Obj.AgenciaUserId))).Distinct().ToList(); var lstAgencias = await repMongo.ListarUsuarioByAgencia <Models.Usuario>(idAgencias); lstAgencias.ToList(); var lstUsuariosInsights = await repMongo.ListGraphByUserIds <Models.Graph.Usuario>(idUsuarios); lstUsuariosInsights.ToList(); var lstMediaInsights = await repMongo.ListGraphByUserIds <Models.Graph.Media>(idUsuarios); lstMediaInsights.ToList(); var lstTagInsights = await repMongo.ListGraphByUserIds <Models.Graph.Tags>(idUsuarios); lstTagInsights.ToList(); var lstStoriesInsights = await repMongo.ListGraphByUserIds <Models.Graph.Stories>(idUsuarios); lstStoriesInsights.ToList(); var lstInsights = await repMongo.ListGraphByUserIds <Models.DTO.InsigthDTO>(idUsuarios); lstInsights.ToList(); var lstCitiesInsights = await repMongo.ListGraphByUserIds <Models.Graph.InsightsGenderAge>(idUsuarios); lstCitiesInsights.ToList(); int linhaerro; var lstPagamentos = await repMongo.ListGraphByUserIds <Models.DTO.PagamentoPage>(idUsuarios); lstPagamentos.ToList(); var lst = new List <UsuarioAcoes>(); lstUsuarios.Where(w => w.Obj.Tipo != "2").ForEach(f => { try { var usuarioInsight = lstUsuariosInsights.Where(w => w._id.ToString() == f._id).FirstOrDefault(); linhaerro = 0;; var agencia = lstAgencias.Where(w => w._id.ToString() == f.Obj.AgenciaUserId).FirstOrDefault(); linhaerro++; var citiesInsights = lstCitiesInsights.Where(w => w.UsuarioId.ToString() == f._id.ToString()).FirstOrDefault(); linhaerro++; var cityTop = citiesInsights == null ? null : citiesInsights.Obj == null ? null : citiesInsights.Obj.data == null ? null : citiesInsights.Obj.data.FirstOrDefault(); linhaerro++; var city = cityTop == null ? null : cityTop.values.FirstOrDefault(); linhaerro++; var lstCity = city == null ? null : city.value.Select(s => new { valor = s.Value, key = s.Key }); linhaerro++; var _maxCity = lstCity == null ? null : lstCity.Where(w => w.valor == lstCity.Max(m => m.valor)).FirstOrDefault(); var maxCity = (_maxCity == null ? null : _maxCity.key); linhaerro++; var ageInsights = lstInsights.Where(w => w.UsuarioId.ToString() == f._id.ToString()).FirstOrDefault(); linhaerro++; var ageTop = ageInsights == null ? null : ageInsights.Obj.data.FirstOrDefault(); linhaerro++; var age = ageTop == null ? null : ageTop.values.FirstOrDefault(); linhaerro++; var lstAge = age == null ? null : age.value.Select(s => new { valor = s.valor, key = s.name }); linhaerro++; var _maxAge = lstAge == null ? null : lstAge.Where(w => w.valor == lstAge.Max(m => m.valor)).FirstOrDefault(); var maxAge = (_maxAge == null ? null : _maxAge.key); linhaerro++; try { lst.Add( new UsuarioAcoes() { UsuarioId = f._id.ToString(), UserName = f.Obj.name_page + ( usuarioInsight == null ? "" : usuarioInsight.Obj.username ), Agencia = agencia == null ? "" : agencia.Obj.NomeAgencia, Usuario = lstUsuariosInsights.Exists(x => x.UsuarioId == f._id.ToString()), Media = lstMediaInsights.Exists(x => x.UsuarioId == f._id.ToString()), Tags = lstTagInsights.Exists(x => x.UsuarioId == f._id.ToString()), Stories = lstStoriesInsights.Exists(x => x.UsuarioId == f._id.ToString()), CityTop = city == null ? "" : maxCity, AgeTop = age == null ? "" : maxAge, DataCriacao = f.DateCreation, Status = ((f.Obj.Tipo == "4" && f.Obj.AgenciaUserId == "") ? "Removido" : ( f.Obj.Tipo == "2" ? "Agência" : "" ) ) }); } catch (Exception) { } } catch (Exception) { } }); return(View(lst.OrderBy(o => o.UserName))); }