Exemplo n.º 1
0
        public List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> getFacaebookPageReports(string profileId, int daysCount)
        {
            try
            {
                SocioBoardMailSenderServices.Model.MongoRepository mongorepo = new SocioBoardMailSenderServices.Model.MongoRepository("FacaebookPageDailyReports");
                //MongoRepository mongorepo =
                //List<Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> inMemFacaebookPageDailyReports = _redisCache.Get<List<Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>>(Domain.Socioboard.Consatants.SocioboardConsts.CacheFacebookPageReportsByProfileId + profileId);
                //if (inMemFacaebookPageDailyReports != null)
                //{
                //    return inMemFacaebookPageDailyReports;
                //}
                //else

                DateTime dayStart = new DateTime(DateTime.UtcNow.AddDays(-daysCount).Year, DateTime.UtcNow.AddDays(-daysCount).Month, DateTime.UtcNow.AddDays(-daysCount).Day, 0, 0, 0, DateTimeKind.Utc);
                DateTime dayEnd   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc);
                var      ret      = mongorepo.Find <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>(t => t.pageId.Equals(profileId) && (t.date <= SBHelper.ConvertToUnixTimestamp(dayEnd)) && (t.date >= SBHelper.ConvertToUnixTimestamp(dayStart)));
                var      task     = Task.Run(async() =>
                {
                    return(await ret);
                });

                if (task.Result != null)
                {
                    IList <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports> lstfbpagereportdata = task.Result.ToList();
                    if (lstfbpagereportdata.Count > 0)
                    {
                        // _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheFacebookPageReportsByProfileId + profileId, lstfbpagereportdata.ToList());
                    }
                    // int likescount = lstfbpagereportdata.Sum(t => t.likes);
                    //string talkingabout = lstfbpagereportdata.Sum(t => t.talkingAbout);


                    return(lstfbpagereportdata.ToList());
                }
                return(new List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>());
            }
            catch (Exception ex)
            {
                return(new List <Domain.Socioboard.Models.Mongo.FacaebookPageDailyReports>());
            }
        }
Exemplo n.º 2
0
        public List <string> addreportfromelastic(int count)
        {
            int mailcount = 0;
            List <BsonDocument> lstbson = new List <BsonDocument>();

            Domain.Socioboard.Models.Mongo.ElasticmailReport   insertdata = new Domain.Socioboard.Models.Mongo.ElasticmailReport();
            SocioBoardMailSenderServices.Model.MongoRepository mongorepo  = new SocioBoardMailSenderServices.Model.MongoRepository("ElasticmailDailyReport");
            // Guid Id = Guid.NewGuid();
            string[]      USERNAME  = { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" };
            string[]      API_KEY   = { "3eb5a724-e696-40fc-8d4f-7b33f488f3a3", "7fc66317-898e-4a09-9516-de53d527953d", "c88a8062-c240-4eb6-8648-ce833e2af165", "b1cb6821-e6ca-49fd-af08-e00f371a141c", "25274610-3dcb-49ee-aaf2-778efe4d7250", "862ec8a0-2094-4e60-a1ec-3121361f7d4c", "1a4224e4-f24d-4317-b032-56c7f4391f9c" };
            string        apikey    = API_KEY[count];
            string        username  = USERNAME[count];
            List <string> lstuser   = new List <string>();
            string        output    = string.Empty;
            DateTime      date      = DateTime.UtcNow;
            DateTime      startdate = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-1);
            DateTime      endtdate  = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59, DateTimeKind.Utc).AddDays(-1);
            //double startdate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(new DateTime(DateTime.UtcNow.AddDays(-(i)).Year, DateTime.UtcNow.AddDays(-(i)).Month, DateTime.UtcNow.AddDays(-(i)).Day, 0, 0, 0, DateTimeKind.Utc));
            //double endtdate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(new DateTime(DateTime.UtcNow.AddDays(-(i)).Year, DateTime.UtcNow.AddDays(-(i)).Month, DateTime.UtcNow.AddDays(-(i)).Day, 0, 0, 0, DateTimeKind.Utc));

            string Elasticurl         = "https://api.elasticemail.com/mailer/status/log?format=csv&username="******"&api_key=" + apikey + "&status=0&from=" + startdate + "&to=" + endtdate + "";
            var    Elasticpagerequest = (HttpWebRequest)WebRequest.Create(Elasticurl);

            Elasticpagerequest.Method      = "GET";
            Elasticpagerequest.Credentials = CredentialCache.DefaultCredentials;
            Elasticpagerequest.AllowWriteStreamBuffering      = true;
            Elasticpagerequest.ServicePoint.Expect100Continue = false;
            Elasticpagerequest.PreAuthenticate = false;
            try
            {
                using (var response = Elasticpagerequest.GetResponse())
                {
                    using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252)))
                    {
                        output = stream.ReadToEnd().Replace("\n", "").Replace("\r", "");
                        string[] Data = Regex.Split(output, "\"\"");
                        foreach (string item in Data)
                        {
                            if (item.Contains("channel"))
                            {
                                string   val      = getBetween(item + "$", "\"", "$");
                                string[] details  = Regex.Split(val, ",");
                                string   MailId   = details[0].Replace('"', ' ');
                                string   status   = details[1].Replace('"', ' ');
                                DateTime time     = Convert.ToDateTime(details[3].Replace('"', ' '));
                                double   unixtime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(time);
                                insertdata.Id     = ObjectId.GenerateNewId();
                                insertdata.mailid = MailId;
                                insertdata.status = status;
                                insertdata.time   = unixtime;

                                var ret  = mongorepo.Find <Domain.Socioboard.Models.Mongo.ElasticmailReport>(t => t.Id == insertdata.Id);
                                var task = Task.Run(async() => {
                                    return(await ret);
                                });
                                if (task.Result != null)
                                {
                                    int count1 = task.Result.Count;
                                    if (count1 < 1)
                                    {
                                        mongorepo.Add <Domain.Socioboard.Models.Mongo.ElasticmailReport>(insertdata);
                                        Console.WriteLine(insertdata.mailid + " added successfully");
                                        mailcount++;
                                        Console.WriteLine("Mail added Count  " + mailcount + "  On date  " + DateTime.UtcNow);
                                    }
                                }

                                //mongorepo.Add<Domain.Socioboard.Models.Mongo.ElasticmailReport>(insertdata);
                            }
                            else
                            {
                                string[] detail   = Regex.Split(item, ",");
                                string   MailId   = detail[0].Replace('"', ' ');
                                string   status   = detail[1].Replace('"', ' ');
                                DateTime time     = Convert.ToDateTime(detail[3].Replace('"', ' '));
                                double   unixtime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(time);
                                insertdata.Id     = ObjectId.GenerateNewId();
                                insertdata.mailid = MailId;
                                insertdata.status = status;
                                insertdata.time   = unixtime;
                                var ret  = mongorepo.Find <Domain.Socioboard.Models.Mongo.ElasticmailReport>(t => t.Id == insertdata.Id);
                                var task = Task.Run(async() => {
                                    return(await ret);
                                });
                                if (task.Result != null)
                                {
                                    int count1 = task.Result.Count;
                                    if (count1 < 1)
                                    {
                                        mongorepo.Add <Domain.Socioboard.Models.Mongo.ElasticmailReport>(insertdata);
                                        Console.WriteLine(insertdata.mailid + " added successfully");
                                        mailcount++;
                                        Console.WriteLine("Mail added Count  " + mailcount + "  On date  " + DateTime.UtcNow);
                                    }
                                }
                            }
                        }
                        //mongorepo.AddList(lstbson);
                    }
                }
            }
            catch (Exception e)
            {
            }
            return(lstuser);
        }