public static void DeleteRecipientById(string RecipientId) { ObserverDbContext _db = new ObserverDbContext(); _db.Recipients.Where(e => e.Id == RecipientId).FirstOrDefault().Deleted = true; _db.SaveChanges(); }
public static void DeleteStepById(string StepId) { using (ObserverDbContext _db = new ObserverDbContext()) { StepsModel model = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); int numOrder = model.Order.GetValueOrDefault(); string observeId = model.Observes.Id; model.Deleted = true; model.Order = 0; List <StepsModel> listModel = _db.Steps .Where(e => e.Observes.Id == observeId) .ToList(); foreach (StepsModel item in listModel) { if (item.Order > numOrder) { item.Order = item.Order - 1; } } _db.SaveChanges(); } }
public static void CreateNewUser(UsersModel users) { ObserverDbContext _db = new ObserverDbContext(); _db.Users.Add(users); _db.SaveChanges(); }
public static void DetectResponseIrregularity(string StepId, int Minutes) { ObserverDbContext _db = new ObserverDbContext(); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); int minute = (int)DateTime.UtcNow.Subtract(stepsModel.CheckedTime).TotalMinutes; try { if (minute > Minutes) { string ObservesId = ObserveServiceManager.GetObserveByStepId(StepId).Id; ObservesModel model = _db.Observes.Where(r => r.Id == ObservesId).FirstOrDefault(); model.Status = 0; _db.SaveChanges(); foreach (RecipientsModel item in model.List_Recipients.Where(e => e.Deleted == false).ToList()) { EmailServiceManager.CatchErrorNotification(model.Name, item.Email); } } } catch (NullReferenceException e) { e.ToString(); } }
public static void SetCatchByStepId(string StepId, string CatchId) { ObserverDbContext _db = new ObserverDbContext(); CatchesModel catchesModel = _db.Catches.Where(e => e.Id == CatchId).FirstOrDefault(); _db.Steps.Where(e => e.Id == StepId).FirstOrDefault().Catches = catchesModel; _db.SaveChanges(); }
public static void DeleteObserveById(string Id) { ObserverDbContext _db = new ObserverDbContext(); var query = _db.Observes .Where(e => e.Id == Id) .FirstOrDefault(); query.Deleted = true; _db.SaveChanges(); }
public static void SetIntervalByObserveId(string ObserveId, int Interval) { ObserverDbContext _db = new ObserverDbContext(); var query = _db.Observes.Where(e => e.Id == ObserveId).FirstOrDefault(); query.Interval = Interval; query.NextRun = DateTime.UtcNow; _db.SaveChanges(); }
public int EmailLoginRequest(string SessionId, string Email, string SessionKey) { ObserverDbContext _db = new ObserverDbContext(); var session = _db.LoginSessions .Where(e => e.Id == SessionId) .FirstOrDefault(); if (session.Status == 6) { // Session expired return(0); } if (session.Status != 1) { // Session type error return(1); } if (session.Key != SessionKey) { // Session expired return(0); } var users = _db.Users .Where(e => e.Email == Email) .ToList(); if (users.Count > 0) { var user = users.FirstOrDefault(); if (user.Status == 1) { session.EmailKey = EncryptionAlgorithmServiceManager.GetRNGGuid().ToString(); session.Status = 4; session.Users = user; _db.SaveChanges(); EmailServiceManager.AccountEmailLogin(user.Name, Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/LoginEmail?Id=" + SessionId + "&Key=" + session.EmailKey, user.Email); return(4); } else { // Inactive user return(3); } } else { // Cannot find user return(2); } }
public async Task <ActionResult> VerifyEmail(string Id, string Key) { ObserverDbContext _db = new ObserverDbContext(); var query = _db.PendingUsers .Where(e => e.Id == Id && e.Key == Key) .OrderByDescending(e => e.DateCreated) .ToList(); if (query.Count > 0) { var query2 = query.FirstOrDefault(); if (query2.DateCreated.AddHours(1) < DateTime.UtcNow) { return(RedirectToAction("Index", "Home", new { status = 8 })); } else if (query2.Id == Id && query2.Key == Key) { query2.Status = 1; var user = new ApplicationUser { UserName = query2.Email, Email = query2.Email, LockoutEndDateUtc = System.DateTime.UtcNow }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { UsersModel newUser = new UsersModel() { Id = user.Id, Name = query2.DisplayName, Email = query2.Email, Status = 1, DateCreated = DateTime.UtcNow, ApiCode = EncryptionAlgorithmServiceManager.GetRNGGuid().ToString() }; _db.Users.Add(newUser); _db.SaveChanges(); await SignInManager.SignInAsync(user, true, true); } return(RedirectToAction("Index", "Home", new { status = 9 })); } else { return(RedirectToAction("Index", "Home", new { status = 8 })); } } else { return(RedirectToAction("Index", "Home", new { status = 8 })); } }
public static void AddRecipient(RecipientsModel model) { ObserverDbContext _db = new ObserverDbContext(); ObservesModel observesModel = _db.Observes .Where(e => e.Id == model.Observes.Id) .FirstOrDefault(); model.Observes = observesModel; _db.Recipients.Add(model); _db.SaveChanges(); }
public static void UpdateObserve(ObservesModel model) { ObserverDbContext _db = new ObserverDbContext(); var query = _db.Observes .Where(e => e.Id == model.Id) .FirstOrDefault(); query.Status = model.Status; query.Name = model.Name; _db.SaveChanges(); }
public int QRLoginCancel(string SessionId) { ObserverDbContext _db = new ObserverDbContext(); var session = _db.LoginSessions .Where(e => e.Id == SessionId) .FirstOrDefault(); if (session.Status == 2) { session.Status = 6; _db.SaveChanges(); } return(1); }
public static void ExecuteInterval(string ObserveId) { ObserverDbContext _db = new ObserverDbContext(); var query = _db.Observes.Where(e => e.Id == ObserveId).FirstOrDefault(); int intervalType = query.Interval.GetValueOrDefault(); if (intervalType == 1) { query.NextRun = DateTime.UtcNow.AddMinutes(1); } else if (intervalType == 2) { query.NextRun = DateTime.UtcNow.AddMinutes(5); } else if (intervalType == 3) { query.NextRun = DateTime.UtcNow.AddMinutes(30); } else if (intervalType == 4) { query.NextRun = DateTime.UtcNow.AddHours(1); } else if (intervalType == 5) { query.NextRun = DateTime.UtcNow.AddHours(6); } else if (intervalType == 6) { query.NextRun = DateTime.UtcNow.AddHours(12); } else if (intervalType == 7) { query.NextRun = DateTime.UtcNow.AddDays(1); } else if (intervalType == 8) { query.NextRun = DateTime.UtcNow.AddDays(2); } else if (intervalType == 9) { query.NextRun = DateTime.UtcNow.AddDays(7); } _db.SaveChanges(); }
public ActionResult EmailLogin(string Id, string Key) { ObserverDbContext _db = new ObserverDbContext(); var loginSession = _db.LoginSessions .Where(e => e.Id == Id) .FirstOrDefault(); if (loginSession.EmailKey == Key && loginSession.Status == 4) { loginSession.Status = 5; _db.SaveChanges(); return(RedirectToAction("Index", "Home", new { status = 10 })); } else { return(RedirectToAction("Index", "Home", new { status = 11 })); } }
public static void ReorderStepAsc(string ObserveId, int initOrder, int finalOrder) { ObserverDbContext _db = new ObserverDbContext(); List <StepsModel> listModel = _db.Steps .Where(e => e.Observes.Id == ObserveId && e.Deleted == false) .OrderBy(e => e.Order) .ToList(); int diff = finalOrder - initOrder; listModel.Where(e => e.Order == initOrder).FirstOrDefault().Order = 0; for (int i = 1; i <= diff; i++) { listModel.Where(e => e.Order == initOrder + i).FirstOrDefault().Order = listModel.Where(e => e.Order == initOrder + i).FirstOrDefault().Order - 1; } listModel.Where(e => e.Order == 0).FirstOrDefault().Order = finalOrder; _db.SaveChanges(); }
public JsonResult QRLogin(string SessionId, string SessionKey) { ObserverDbContext _db = new ObserverDbContext(); var session = _db.LoginSessions .Where(e => e.Id == SessionId) .FirstOrDefault(); if (session.QRKey == SessionKey && session.SessionDate > DateTime.UtcNow) { session.Status = 3; session.SessionDate = DateTime.UtcNow; _db.SaveChanges(); return(Json(new JavaScriptSerializer().DeserializeObject("{ 'Status': 'Authorized' }"))); } else { return(Json(new JavaScriptSerializer().DeserializeObject("{ 'Status': 'Unauthorized' }"))); } }
public static void UpdateStep(StepsModel model, string PCMethodId) { ObserverDbContext _db = new ObserverDbContext(); PCMethodsModel pcMethodsModel = _db.PCMethods.Where(e => e.Id == PCMethodId).FirstOrDefault(); StepsModel oriModel = _db.Steps .Where(e => e.Id == model.Id) .FirstOrDefault(); oriModel.Url = model.Url; oriModel.Method = model.Method; oriModel.SetHeader = model.SetHeader; oriModel.PredefinedHeader = model.PredefinedHeader; oriModel.PC_Method = pcMethodsModel; oriModel.PC1 = model.PC1; oriModel.PC2 = model.PC2; oriModel.PC2Secret = model.PC2Secret; _db.SaveChanges(); }
public static void CreateObserve(string AspId, string Name) { ObserverDbContext _db = new ObserverDbContext(); UsersModel user = _db.Users.Where(e => e.Id == AspId).FirstOrDefault(); ObservesModel model = new ObservesModel() { Id = Guid.NewGuid().ToString(), Name = Name, Status = 0, Users = user, DateCreated = DateTime.UtcNow, Deleted = false, Interval = 0, NextRun = DateTime.UtcNow }; _db.Observes.Add(model); _db.SaveChanges(); }
protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); ObserverDbContext _db = new ObserverDbContext(); string referrer = null; if (Request.UrlReferrer != null) { referrer = Request.UrlReferrer.ToString(); } ErrorLoggingsModel model = new ErrorLoggingsModel() { Id = Guid.NewGuid().ToString(), Source = exception.Source, Message = exception.Message, UserAgent = Request.UserAgent, Ip = Request.UserHostAddress, Referrer = referrer, Date = DateTime.UtcNow }; _db.ErrorLoggings.Add(model); _db.SaveChanges(); }
public JsonResult SetPredefinedHeader(string StepId, string Header, string Code) { ObserverDbContext _db = new ObserverDbContext(); Header = Regex.Replace(Header, @"\s+", ""); var query = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); if (query.Observes.Users.ApiCode == Code) { query.PredefinedHeader = Header; ObservesModel observesModel = _db.Steps.Where(e => e.Id == StepId).FirstOrDefault().Observes; observesModel.Status = 1; _db.SaveChanges(); return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'Success' }"), JsonRequestBehavior.AllowGet)); } else { return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'Unauthorized' }"), JsonRequestBehavior.AllowGet)); } }
public static void Catch(string StepId, string Html) { bool newEntry = false; ObserverDbContext _db = new ObserverDbContext(); string ObserveId = ObserveServiceManager.GetObserveByStepId(StepId).Id; string ObserveName = ObserveServiceManager.GetObserveByStepId(StepId).Name; List <RecipientsModel> recipientsList = ObserveServiceManager.GetObserveByStepId(StepId).List_Recipients.Where(e => e.Deleted == false).ToList(); string data = null; try { data = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault() .List_CatchRecordsModel .OrderByDescending(e => e.DateCreated) .FirstOrDefault() .Data; } catch (NullReferenceException e) { e.ToString(); newEntry = true; } string catches = StepServiceManager.GetStepById(StepId).Catches.Id; CatchesModel catchesModel = _db.Catches .Where(e => e.Id == catches) .FirstOrDefault(); // TaQBin Tracking if (catches.Equals("E0779B1E-3288-403C-85A4-C07E697C9A5D")) { string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//div").ElementAt(6).InnerHtml; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } // HongLeong Bank Stm else if (catches.Equals("A08BB1EE-CC58-48A0-9B9F-ACD5FFC07DA4")) { string HTML = null; string HTML1 = null; string HTML2 = null; var htmlDoc = new HtmlDocument(); try { htmlDoc.LoadHtml(Html); HTML1 = htmlDoc.DocumentNode .SelectNodes("//table").ElementAt(0).InnerHtml; htmlDoc.LoadHtml(HTML1); var Html2 = htmlDoc.DocumentNode .SelectNodes("//tr").ElementAt(3).InnerHtml; var Html3 = htmlDoc.DocumentNode .SelectNodes("//tr").ElementAt(4).InnerHtml; htmlDoc.LoadHtml(Html); HTML2 = htmlDoc.DocumentNode .SelectNodes("//table").ElementAt(4).InnerHtml; HTML = Html2 + Html3 + HTML2; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 120); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { if (!HTML.Contains("No records found.")) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } } // UCSI Academic Result else if (catches.Equals("CFAA4AB2-7F9D-4B3A-BA03-E4A490419C2C")) { string HTML = null; var htmlDoc = new HtmlDocument(); try { htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//body").ElementAt(0).InnerHtml; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 180); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { if (!HTML.Contains(" Please provide your User ID and Password to proceed.")) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } } // Poslaju else if (catches.Equals("8DA4B8C8-1FFA-4336-958B-42678418B79C")) { string HTML = null; int count = 0; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//script").ElementAt(0).InnerHtml; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); try { while (!HTML.Contains("function cleanTrackingIds")) { HTML = htmlDoc.DocumentNode.SelectNodes("//script").ElementAt(count).InnerHtml; count++; } } catch (ArgumentOutOfRangeException e) { e.ToString(); } StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } // UCSI ELE else if (catches.Equals("E9356BC5-E5ED-470A-A97F-80BAF3CF21AF")) { string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//table").ElementAt(1).InnerHtml; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } // Unitea Home } else if (catches.Equals("D469A7A5-76A6-4C03-BD23-C6B0B7F6E19F")) { string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//input").ElementAt(0).Attributes["value"].Value; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } // * Catch All Content * } else if (catches.Equals("4E0E2AAD-8389-4466-8C99-C4879A2ADEB2")) { string HTML = null; try { HTML = Html; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } /* HongLeong Bank Balance (OLD) * else if (catches.Equals("28CF45D5-0C68-4EC0-9F1F-CDA2EC23BB1C")) * { * string HTML1 = null; * string HTML2 = null; * string HTML = null; * * try * { * var htmlDoc = new HtmlDocument(); * htmlDoc.LoadHtml(Html); * HTML1 = htmlDoc.DocumentNode * .SelectNodes("//td").ElementAt(7).InnerHtml; * HTML2 = htmlDoc.DocumentNode * .SelectNodes("//td").ElementAt(9).InnerHtml; * HTML = HTML1 + HTML2; * HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); * * StepsModel stepsModel = _db.Steps * .Where(e => e.Id == StepId) * .FirstOrDefault(); * * stepsModel.CheckedTime = DateTime.UtcNow; * _db.SaveChanges(); * } * catch (ArgumentNullException e) * { * e.ToString(); * DetectResponseIrregularity(StepId, 60); * HTML = "1"; * data = "1"; * } * * if (HTML != data || newEntry) * { * string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); * * StepsModel stepsModel = _db.Steps * .Where(e => e.Id == StepId) * .FirstOrDefault(); * * CatchRecordsModel model = new CatchRecordsModel() * { * Id = Guid.NewGuid().ToString(), * Data = HTML, * DateCreated = DateTime.UtcNow, * Catches = catchesModel, * Steps = stepsModel, * PDF = fileUrl * }; * * foreach (RecipientsModel item in recipientsList) * { * EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); * } * * stepsModel.CheckedTime = DateTime.UtcNow; * * _db.CatchRecords.Add(model); * _db.SaveChanges(); * } * }*/ // HongLeong Bank Balance else if (catches.Equals("28CF45D5-0C68-4EC0-9F1F-CDA2EC23BB1C")) { string HTML1 = null; string HTML2 = null; string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML1 = htmlDoc.DocumentNode .SelectNodes("//td").ElementAt(7).InnerHtml; HTML2 = htmlDoc.DocumentNode .SelectNodes("//td").ElementAt(9).InnerHtml; HTML = HTML1 + HTML2; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } // UCSI ELE Viewstate else if (catches.Equals("37A8B073-AC68-4AD2-A793-3AD664305856")) { string HTML1 = null; string HTML2 = null; string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML1 = htmlDoc.DocumentNode.SelectNodes("//input").ElementAt(0).Attributes["value"].Value; HTML2 = htmlDoc.DocumentNode.SelectNodes("//input").ElementAt(3).Attributes["value"].Value; HTML = HTML1 + HTML2; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } ObserveSessionDatasModel newModel = new ObserveSessionDatasModel() { Id = Guid.NewGuid().ToString(), Observes = _db.Steps.Where(e => e.Id == StepId).FirstOrDefault().Observes, Key = "ViewState" }; } // Wiwaa Bank Submit else if (catches.Equals("6B5DE6DE-84D4-4CBB-A8B8-812E45CDB136")) { string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//table").ElementAt(0).InnerHtml; HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } // A2Hosting Issue Log else if (catches.Equals("EE3A2DE8-EBE6-4126-A07A-5F3B535532CE")) { string HTML = null; try { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(Html); HTML = htmlDoc.DocumentNode .SelectNodes("//div").ElementAt(8).InnerHtml; HTML = HTML.Substring(HTML.Length - 200); HTML = HashingAlgorithmServiceManager.GenerateSHA1(Encoding.UTF8.GetBytes(HTML)); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); stepsModel.CheckedTime = DateTime.UtcNow; _db.SaveChanges(); } catch (ArgumentNullException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } catch (NullReferenceException e) { e.ToString(); DetectResponseIrregularity(StepId, 60); HTML = "1"; data = "1"; } if (HTML != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = HTML, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } /* GDex Tracking (INCOMPLETE) * else if (catches.Equals("AB46347E-6745-4ADD-BE34-E58EC49CBDFD")) * { * StepsModel stepsModel = _db.Steps * .Where(e => e.Id == StepId) * .FirstOrDefault(); * * try * { * bool retry = true; * int i = 0; * while (retry) { * int seq = int.Parse(JObject.Parse(Html).SelectToken("result[0].listPodData["+i+"].seq").ToString()); * if (seq > int.Parse(data) || newEntry) * { * string date = JObject.Parse(Html).SelectToken("result[0].listPodData[" + i + "].dtScan").ToString(); * string origin = JObject.Parse(Html).SelectToken("result[0].listPodData[" + i + "].origin").ToString(); * string type = JObject.Parse(Html).SelectToken("result[0].listPodData[" + i + "].type").ToString(); * string newType; * * if (type.Equals("i_pod")) * { * newType = "Under Claim"; * } else if (type.Equals("undl")) * retry = false; * * CatchRecordsModel model = new CatchRecordsModel() * { * Id = Guid.NewGuid().ToString(), * Data = seq.ToString(), * DateCreated = DateTime.UtcNow, * Catches = catchesModel, * Steps = stepsModel, * PDF = fileUrl * }; * } * i++; * } * } catch (NullReferenceException e) * { * e.ToString(); * } catch (ArgumentNullException e) * { * e.ToString(); * DetectResponseIrregularity(StepId, 60); * data = "1"; * } * * stepsModel.CheckedTime = DateTime.UtcNow; * _db.SaveChanges(); * * if (HTML != data || newEntry) * { * string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); * * * * foreach (RecipientsModel item in recipientsList) * { * EmailServiceManager.CatchNotification(fileUrl, ObserveName, item.Email); * } * * stepsModel.CheckedTime = DateTime.UtcNow; * * _db.CatchRecords.Add(model); * _db.SaveChanges(); * } * }*/ // GDex Tracking else if (catches.Equals("AB46347E-6745-4ADD-BE34-E58EC49CBDFD")) { if (Html != data || newEntry) { string fileUrl = DocumentRenderServiceManager.A4Html2Pdf(Html); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); CatchRecordsModel model = new CatchRecordsModel() { Id = Guid.NewGuid().ToString(), Data = Html, DateCreated = DateTime.UtcNow, Catches = catchesModel, Steps = stepsModel, PDF = fileUrl }; foreach (RecipientsModel item in recipientsList) { string shippingId = stepsModel.PC1; string message = "The system has detected changes of shipping status.<br>Please visit <a href='https://web3.gdexpress.com/official/iframe/etracking_v4.php?input=" + shippingId + "&choice=cnGdex'>https://web3.gdexpress.com/official/iframe/etracking_v4.php?input=" + shippingId + "&choice=cnGdex</a>"; EmailServiceManager.CatchNotificationWithoutScreenshot(message, ObserveName, item.Email); } stepsModel.CheckedTime = DateTime.UtcNow; _db.CatchRecords.Add(model); _db.SaveChanges(); } } }
public async Task <ActionResult> Login(string errorMessage = null, string ReturnUrl = null) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Home", new { status = 2 })); } ObserverDbContext _db = new ObserverDbContext(); try { string sessionId = Request.Cookies.Get("SessionId").Value; string sessionKey = Request.Cookies.Get("SessionKey").Value; string myUserAgent = Request.UserAgent; var session = _db.LoginSessions .Where(e => e.Id == sessionId) .FirstOrDefault(); if (session.UserAgent == myUserAgent && session.Key == sessionKey && (session.Status == 3 || session.Status == 5) && session.Status != 6 && session.SessionDate.AddMonths(2) > DateTime.UtcNow) { ApplicationUser user = UserManager.FindById(session.Users.Id); await SignInManager.SignInAsync(user, true, true); string newId = Guid.NewGuid().ToString(); string newKey = HashingAlgorithmServiceManager.GenerateSHA256(Encoding.ASCII.GetBytes(EncryptionAlgorithmServiceManager.GetRNGGuid().ToString()), Encoding.ASCII.GetBytes(EncryptionAlgorithmServiceManager.GetRNGGuid().ToString())); LoginSessionsModel newSession = new LoginSessionsModel() { Id = newId, Key = newKey, Status = 3, Users = session.Users, Ip = Request.UserHostAddress, UserAgent = Request.UserAgent, DateCreation = DateTime.UtcNow, SessionDate = session.SessionDate }; session.Status = 6; HttpCookie SessionCookie = new HttpCookie("SessionId"); SessionCookie.Value = newId; SessionCookie.Expires = DateTime.Now.AddMonths(2); Response.SetCookie(SessionCookie); HttpCookie SessionKeyCookie = new HttpCookie("SessionKey"); SessionKeyCookie.Value = newKey; SessionKeyCookie.Expires = DateTime.Now.AddMonths(2); Response.SetCookie(SessionKeyCookie); _db.LoginSessions.Add(newSession); _db.SaveChanges(); if (String.IsNullOrEmpty(ReturnUrl)) { return(RedirectToAction("Index", "Home", new { status = 13, name = session.Users.Name })); } else { if (ReturnUrl.Contains("?")) { ReturnUrl = ReturnUrl + "&status=13&name=" + session.Users.Name; } else { ReturnUrl = ReturnUrl + "?status=13&name=" + session.Users.Name; } return(Redirect(ReturnUrl)); } } else { string loginSessionId = Guid.NewGuid().ToString(); string key = EncryptionAlgorithmServiceManager.GetRNGGuid().ToString(); Uri url = new Uri(Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/QRLogin?Id=" + loginSessionId + "&Key=" + key); string image = QRCodeServiceManager.GenerateLoginQRCode(url.ToString()); LoginSessionsModel loginSession = new LoginSessionsModel() { Id = loginSessionId, Status = 1, Key = key, Ip = Request.UserHostAddress, UserAgent = Request.UserAgent, DateCreation = DateTime.UtcNow, SessionDate = DateTime.UtcNow, Path = ReturnUrl }; session.Status = 6; _db.LoginSessions.Add(loginSession); _db.SaveChanges(); ViewBag.LoginSessionId = loginSessionId; ViewBag.Key = key; ViewBag.QRImage = image; HttpCookie SessionCookie = new HttpCookie("SessionId"); SessionCookie.Value = null; SessionCookie.Expires = DateTime.Now.AddYears(-10); Response.SetCookie(SessionCookie); HttpCookie SessionKeyCookie = new HttpCookie("SessionKey"); SessionKeyCookie.Value = null; SessionKeyCookie.Expires = DateTime.Now.AddYears(-10); Response.SetCookie(SessionKeyCookie); return(View("Login")); } } catch (NullReferenceException e) { e.ToString(); string loginSessionId = Guid.NewGuid().ToString(); string key = EncryptionAlgorithmServiceManager.GetRNGGuid().ToString(); Uri url = new Uri(Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/QRLogin?Id=" + loginSessionId + "&Key=" + key); string image = QRCodeServiceManager.GenerateLoginQRCode(url.ToString()); LoginSessionsModel loginSession = new LoginSessionsModel() { Id = loginSessionId, Status = 1, Key = key, Ip = Request.UserHostAddress, UserAgent = Request.UserAgent, DateCreation = DateTime.UtcNow, SessionDate = DateTime.UtcNow, Path = ReturnUrl }; _db.LoginSessions.Add(loginSession); _db.SaveChanges(); ViewBag.LoginSessionId = loginSessionId; ViewBag.Key = key; ViewBag.QRImage = image; HttpCookie SessionCookie = new HttpCookie("SessionId"); SessionCookie.Value = null; SessionCookie.Expires = DateTime.Now.AddYears(-10); Response.SetCookie(SessionCookie); HttpCookie SessionKeyCookie = new HttpCookie("SessionKey"); SessionKeyCookie.Value = null; SessionKeyCookie.Expires = DateTime.Now.AddYears(-10); Response.SetCookie(SessionKeyCookie); return(View("Login")); } }
/* * Method * 1 - No previous step * 2 - Insert new step as level 1 priority * 3 - Insert new step as last level priority */ public static bool CreateStep(string AspId, StepsModel model, int Method, string ObserveId) { ObserverDbContext _db = new ObserverDbContext(); ObservesModel queryModel = _db.Observes .Where(e => e.Id == ObserveId) .FirstOrDefault(); try { if (model.PC_Method.Id != null) { PCMethodsModel pcMethodsModel = _db.PCMethods.Where(e => e.Id == model.PC_Method.Id).FirstOrDefault(); model.PC_Method = pcMethodsModel; } } catch (NullReferenceException e) { e.ToString(); } if (AspId == queryModel.Users.Id) { model.Observes = queryModel; model.CheckedTime = DateTime.UtcNow; if (Method == 1) { model.Order = 1; _db.Steps.Add(model); _db.SaveChanges(); } else if (Method == 2) { var modelList = _db.Steps .Where(e => e.Observes.Id == ObserveId) .OrderByDescending(e => e.Order) .ToList(); foreach (StepsModel item in modelList) { item.Order = item.Order + 1; } model.Order = 1; _db.Steps.Add(model); _db.SaveChanges(); } else if (Method == 3) { int countStep = _db.Steps .Where(e => e.Observes.Id == model.Observes.Id && e.Deleted == false) .Count(); model.Order = countStep + 1; _db.Steps.Add(model); _db.SaveChanges(); } return(true); } else { return(false); } }
public static async Task <int> RunExecution() { ObserverDbContext _db = new ObserverDbContext(); int count = 0; var query1 = _db.Observes .Where(e => e.Status == 1 && e.Deleted == false) .ToList(); var query2 = _db.Steps; foreach (var item in query1) { try { if (item.NextRun <= DateTime.UtcNow && item.Interval != 0) { var queryTemp = query2.Where(e => e.Observes.Id == item.Id && e.Deleted == false).OrderBy(e => e.Order).ToList(); Uri uri = null; HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = new CookieContainer(); StringContent queryString = null; HttpClient client = new HttpClient(handler); string respond = null; HttpResponseMessage response = null; foreach (var item2 in queryTemp) { string decrypt = null; if (item2.SetHeader == 0) { handler = new HttpClientHandler(); client = new HttpClient(handler); } if (item2.PC2 != null) { decrypt = EncryptionAlgorithmServiceManager.DecryptStringFromBytes_Aes(Convert.FromBase64String(item2.PC2), Convert.FromBase64String(_db._AESSecretKeyS), Convert.FromBase64String(item2.PC2Secret)); } uri = new Uri(item2.Url); if (item2.SetHeader == 2) { handler.CookieContainer.SetCookies(uri, item2.PredefinedHeader); } if (item2.Method == 2) { if (int.Parse(item2.PC_Method.Id) == 1) { email_password model = new email_password() { email = item2.PC1, password = decrypt }; queryString = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); } else if (int.Parse(item2.PC_Method.Id) >= 3) { var query = _db.PCMethods .Where(e => e.Id == item2.PC_Method.Id) .FirstOrDefault(); var list = query.List_PCMethodDatas; if (query.ContentType == 1) { string s = "{ "; int counts = 0; foreach (var items in list) { if (counts == 0) { s = s + "\"" + items.Key + "\": " + "\"" + items.Value + "\" "; } else { s = s + ",\"" + items.Key + "\": " + "\"" + items.Value + "\" "; } counts = counts + 1; } s = s + "}"; queryString = new StringContent(s, Encoding.UTF8, "application/json"); } else if (query.ContentType == 2) { string content = null; foreach (var items in list) { content = content + items.Value; } if (item2.PC1 != null) { content = content + "&" + query.PC1 + "=" + item2.PC1; } if (item2.PC2 != null) { content = content + "&" + query.PC2 + "=" + decrypt; } queryString = new StringContent(content, Encoding.UTF8, "application/x-www-form-urlencoded"); } else if (query.ContentType == 3) { string content = "-----------------------------114782935826962Content-Disposition: form-data; name='__EVENTTARGET'-----------------------------114782935826962Content-Disposition: form-data; name='__EVENTARGUMENT'-----------------------------114782935826962Content-Disposition: form-data; name='__VIEWSTATEGENERATOR'CF6B32F0-----------------------------114782935826962Content-Disposition: form-data; name='__SCROLLPOSITIONX'0-----------------------------114782935826962Content-Disposition: form-data; name='__SCROLLPOSITIONY'226.39999389648438-----------------------------114782935826962Content-Disposition: form-data; name='__VIEWSTATEENCRYPTED'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$hflApplicationID'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$hflMode'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$ImgEvents.x'12-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$ImgEvents.y'6-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$GeneralAttachments$txtDescriptions'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$GeneralAttachments$fupAttachment'; filename=''Content-Type: application/octet-stream-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$GeneralAttachments$hflApplicationID'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$GeneralAttachments$hflHDNID'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$GeneralAttachments$hflArea'-----------------------------114782935826962Content-Disposition: form-data; name='ctl00$ContentPlaceHolder1$Submission$hflApplicationID'"; foreach (var items in list) { content = content + items.Value; } if (item2.PC1 != null) { content = content + "&" + query.PC1 + "=" + item2.PC1; } if (item2.PC2 != null) { content = content + "&" + query.PC2 + "=" + decrypt; } queryString = new StringContent(content, Encoding.UTF8, "multipart/form-data"); queryString.Headers.Remove("Content-Type"); queryString.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=---------------------------114782935826962"); } } try { response = await client.PostAsync(uri, queryString).ConfigureAwait(false); respond = await response.Content.ReadAsStringAsync(); } catch (HttpRequestException e) { StepsModel step = _db.Steps.Where(r => r.Id == item2.Id).FirstOrDefault(); string innerException = null; if (e.InnerException != null) { if (e.InnerException.InnerException != null) { innerException = e.InnerException.InnerException.Message; } } StepSocketExceptionsModel model = new StepSocketExceptionsModel() { Id = Guid.NewGuid().ToString(), Steps = step, Url = item2.Url, Message = innerException, Date = DateTime.UtcNow }; _db.StepSocketExceptions.Add(model); _db.SaveChanges(); } catch (Exception e) { string innerException = null; if (e.InnerException != null) { innerException = e.InnerException.Message; } ErrorLoggingsModel model = new ErrorLoggingsModel() { Id = Guid.NewGuid().ToString(), Source = "Observe RunExecution", Message = e.Message, InnerException = innerException, Date = DateTime.UtcNow }; _db.ErrorLoggings.Add(model); _db.SaveChanges(); } } else if (item2.Method == 1) { try { response = await client.GetAsync(uri).ConfigureAwait(false); respond = await response.Content.ReadAsStringAsync(); } catch (HttpRequestException e) { StepsModel step = _db.Steps.Where(r => r.Id == item2.Id).FirstOrDefault(); string innerException = null; if (e.InnerException != null) { if (e.InnerException.InnerException != null) { innerException = e.InnerException.InnerException.Message; } } StepSocketExceptionsModel model = new StepSocketExceptionsModel() { Id = Guid.NewGuid().ToString(), Steps = step, Url = item2.Url, Message = innerException, Date = DateTime.UtcNow }; _db.StepSocketExceptions.Add(model); _db.SaveChanges(); } catch (Exception e) { string innerException = null; if (e.InnerException != null) { innerException = e.InnerException.Message; } ErrorLoggingsModel model = new ErrorLoggingsModel() { Id = Guid.NewGuid().ToString(), Source = "Observe RunExecution", Message = e.Message, InnerException = innerException, Date = DateTime.UtcNow }; _db.ErrorLoggings.Add(model); _db.SaveChanges(); } } if (item2.Catches != null) { CatchServiceManager.Catch(item2.Id, respond); } } ExecuteInterval(item.Id); count = count + 1; } } catch (UriFormatException e) { e.ToString(); item.Status = 0; _db.SaveChanges(); } } var webConfig = _db.WebConfigs.Where(e => e.Id == "E7461932-0A62-4AC0-9D34-23C8C2B839B2").FirstOrDefault(); webConfig.Timestamp = DateTime.UtcNow; var webConfigSuccess = _db.WebConfigs.Where(e => e.Id == "9F0EF51A-E5D0-486E-A0C9-D1E003D3C0D8").FirstOrDefault(); if (webConfigSuccess.Timestamp.AddHours(1) < DateTime.UtcNow) { webConfigSuccess.Value = count.ToString(); webConfigSuccess.Timestamp = DateTime.UtcNow; } else { webConfigSuccess.Value = (int.Parse(webConfigSuccess.Value) + count).ToString(); } _db.SaveChanges(); return(count); }
public async Task <ActionResult> QRLogin(string Id, string Key) { ObserverDbContext _db = new ObserverDbContext(); string userId = null; try { string sessionId = Request.Cookies.Get("SessionId").Value; string sessionKey = Request.Cookies.Get("SessionKey").Value; var session = _db.LoginSessions .Where(e => e.Id == sessionId) .FirstOrDefault(); if (session.Key == sessionKey && (session.Status == 3 || session.Status == 5) && session.Status != 6 && session.SessionDate.AddMonths(2) > DateTime.UtcNow) { ApplicationUser user = UserManager.FindById(session.Users.Id); userId = user.Id; await SignInManager.SignInAsync(user, true, true); string newId = Guid.NewGuid().ToString(); string newKey = HashingAlgorithmServiceManager.GenerateSHA256(Encoding.ASCII.GetBytes(EncryptionAlgorithmServiceManager.GetRNGGuid().ToString()), Encoding.ASCII.GetBytes(EncryptionAlgorithmServiceManager.GetRNGGuid().ToString())); LoginSessionsModel newSession = new LoginSessionsModel() { Id = newId, Key = newKey, Status = 3, Users = session.Users, DateCreation = DateTime.UtcNow, SessionDate = session.SessionDate }; session.Status = 6; HttpCookie SessionCookie = new HttpCookie("SessionId"); SessionCookie.Value = newId; SessionCookie.Expires = DateTime.Now.AddMonths(2); Response.SetCookie(SessionCookie); HttpCookie SessionKeyCookie = new HttpCookie("SessionKey"); SessionKeyCookie.Value = newKey; SessionKeyCookie.Expires = DateTime.Now.AddMonths(2); Response.SetCookie(SessionKeyCookie); _db.LoginSessions.Add(newSession); _db.SaveChanges(); } else { RedirectToAction("Login", "Identity"); } } catch (NullReferenceException e) { RedirectToAction("Login", "Identity"); } var loginSession = _db.LoginSessions .Where(e => e.Id == Id) .FirstOrDefault(); if (loginSession.SessionDate.AddMinutes(30) < DateTime.UtcNow) { loginSession.Status = 6; _db.SaveChanges(); return(RedirectToAction("Index", "Home", new { status = 12 })); } else { var user = _db.Users .Where(e => e.Id == userId) .FirstOrDefault(); string proceedKey = EncryptionAlgorithmServiceManager.GetRNGGuid().ToString(); Random random = new Random(); int randomInt = random.Next(999); while (randomInt < 100) { randomInt = random.Next(999); } string sessionCode = randomInt.ToString(); if (loginSession.Status == 1) { loginSession.Status = 2; loginSession.Users = user; loginSession.QRKey = proceedKey; loginSession.SessionCode = sessionCode; loginSession.SessionDate = DateTime.UtcNow.AddSeconds(30); _db.SaveChanges(); } ViewBag.SessionId = Id; ViewBag.ProceedKey = proceedKey; ViewBag.SessionCode = sessionCode; return(View()); } }
public ActionResult Register(RegisterInputModel Input) { ObserverDbContext _db = new ObserverDbContext(); if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } var pendingUsers = _db.PendingUsers .Where(e => e.Email == Input.Email) .OrderByDescending(e => e.DateCreated) .ToList(); var user = _db.Users .Where(e => e.Email == Input.Email) .ToList(); if (user.Count > 0) { ViewBag.ErrorMessage = "Error: The email has been used."; return(View()); } else if (pendingUsers.Count >= 1) { var pendingUser = pendingUsers.FirstOrDefault(); if (pendingUser.Status == 1) { ViewBag.ErrorMessage = "Error: The email has been used."; return(View()); } else if (pendingUser.Status == 0 || pendingUser.Status == 2) { if (pendingUser.DateCreated.AddHours(1) < DateTime.UtcNow) { pendingUser.Status = 2; string id = Guid.NewGuid().ToString(); string key = EncryptionAlgorithmServiceManager.GetRNGGuid().ToString(); PendingUsersModel newUser = new PendingUsersModel() { Id = id, DisplayName = Input.Name, Email = Input.Email, Key = key, Status = 0, DateCreated = DateTime.UtcNow }; _db.PendingUsers.Add(newUser); _db.SaveChanges(); EmailServiceManager.AccountPendingVerification(Input.Name, Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/VerifyEmail?Id=" + id + "&Key=" + key, Input.Email); return(RedirectToAction("Index", "Home", new { Status = 7, email = Input.Email })); } else { int minute = DateTime.UtcNow.Subtract(pendingUser.DateCreated).Minutes; return(RedirectToAction("Index", "Home", new { Status = 6, min = minute })); } } return(View()); } else { string key = Guid.NewGuid().ToString(); string id = Guid.NewGuid().ToString(); PendingUsersModel newUser = new PendingUsersModel() { Id = id, DisplayName = Input.Name, Email = Input.Email, Key = key, Status = 0, DateCreated = DateTime.UtcNow }; _db.PendingUsers.Add(newUser); _db.SaveChanges(); EmailServiceManager.AccountPendingVerification(Input.Name, Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/VerifyEmail?Id=" + id + "&Key=" + key, Input.Email); return(RedirectToAction("Index", "Home", new { Status = 7, email = Input.Email })); } }
public async Task <JsonResult> CheckLoginStatus(string SessionId, string SessionKey) { ObserverDbContext _db = new ObserverDbContext(); var query = _db.LoginSessions .Where(e => e.Id == SessionId) .FirstOrDefault(); if (query.Key == SessionKey) { if (query.SessionDate.AddMinutes(30) < DateTime.UtcNow) { query.Status = 6; _db.SaveChanges(); return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'Expired' }"))); } else if (query.Status == 3 || query.Status == 5) { ApplicationUser user = UserManager.Users .Where(e => e.Id == query.Users.Id) .FirstOrDefault(); await SignInManager.SignInAsync(user, true, true); string key = HashingAlgorithmServiceManager.GenerateSHA256(Encoding.ASCII.GetBytes(EncryptionAlgorithmServiceManager.GetRNGGuid().ToString()), Encoding.ASCII.GetBytes(EncryptionAlgorithmServiceManager.GetRNGGuid().ToString())); query.Key = key; _db.SaveChanges(); HttpCookie SessionCookie = new HttpCookie("SessionId"); SessionCookie.Value = query.Id; SessionCookie.Expires = DateTime.Now.AddMonths(2); Response.SetCookie(SessionCookie); HttpCookie SessionKeyCookie = new HttpCookie("SessionKey"); SessionKeyCookie.Value = key; SessionKeyCookie.Expires = DateTime.Now.AddMonths(2); Response.SetCookie(SessionKeyCookie); return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'LoginReady', 'Path': '" + query.Path + "' }"))); } else if (query.Status == 1 || query.Status == 2 || query.Status == 4) { if (query.Status == 2) { return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'QRPending', 'SessionCode': '" + query.SessionCode + "' }"))); } else { return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'Pending' }"))); } } else { return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'Expired' }"))); } } else { return(Json(new JavaScriptSerializer().Deserialize <object>("{ 'Status': 'Invalid Session' }"))); } }