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>()); } }
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); }