public JsonResult GetCatchList(string StepId) { List <CatchesModel> list = CatchServiceManager.GetCatchesList().OrderBy(e => e.Name).ToList(); CatchListOutputModel output = new CatchListOutputModel(); List <CatchesModel> newList = new List <CatchesModel>(); StepsModel step = StepServiceManager.GetStepById(StepId); string currentCatchId = "0"; foreach (CatchesModel item in list) { CatchesModel catchesModel = new CatchesModel() { Id = item.Id, Name = item.Name }; newList.Add(catchesModel); } if (step.Catches != null) { currentCatchId = step.Catches.Id; } output.Catches = newList; output.SelectedId = currentCatchId; return(Json(output)); }
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 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 JsonResult GetStepDetail(string StepId) { if (ObserveServiceManager.GetObserveByStepId(StepId).Users.Id == User.Identity.GetUserId()) { int numPC = 0; string PC1Label = null; string PC2Label = null; string decrypted = null; ObserverDbContext _db = new ObserverDbContext(); StepsModel model = _db.Steps.Where(e => e.Id == StepId).FirstOrDefault(); if (model.PC_Method != null) { PCMethodsModel models = model.PC_Method; numPC = models.Type; PC1Label = models.PC1; PC2Label = models.PC2; } int pcmethod = 0; if (model.PC_Method != null) { pcmethod = int.Parse(model.PC_Method.Id); } if (model.PC2 != null) { decrypted = EncryptionAlgorithmServiceManager.DecryptStringFromBytes_Aes(Convert.FromBase64String(model.PC2), Convert.FromBase64String(_db._AESSecretKeyS), Convert.FromBase64String(model.PC2Secret)); } StepDetailOutputModel outputModel = new StepDetailOutputModel() { StepId = model.Id, Url = model.Url, Method = model.Method.GetValueOrDefault(), Header = model.SetHeader.GetValueOrDefault(), Priority = model.Order.GetValueOrDefault(), PredefinedHeader = model.PredefinedHeader, Status = "Authorized", PC_Method = pcmethod, PC1 = model.PC1, PC2 = decrypted, PC1Label = PC1Label, PC2Label = PC2Label, numPC = numPC }; return(Json(outputModel)); } else { return(Json(JsonConvert.DeserializeObject("{ 'Status': 'Unauthorized' }"))); } }
public int ResubmitStep(StepResubmitInputModel model) { if (model.Url == null) { return(1); } else if (model.Method != 1 && model.Method != 2) { return(2); } else { ObserverDbContext _db = new ObserverDbContext(); byte[] encrypt = null; byte[] encryptSecret = null; string encrypted = null; string encryptedSecret = null; if (model.PC2 != null) { byte[] secretKey = Convert.FromBase64String(_db._AESSecretKeyS); using (AesManaged myAes = new AesManaged()) { encrypt = EncryptionAlgorithmServiceManager.EncryptStringToBytes_Aes(model.PC2, secretKey, myAes.IV); encryptSecret = myAes.IV; } } if (encrypt != null) { encrypted = Convert.ToBase64String(encrypt); encryptedSecret = Convert.ToBase64String(encryptSecret); } PCMethodsModel pcMethodsModel = PCMethodServiceManager.GetPCMethodById(model.PC_Method.ToString()); StepsModel stepsModel = new StepsModel() { Id = model.StepId, Url = model.Url, Method = model.Method, SetHeader = model.Header, Deleted = false, PredefinedHeader = model.PredefinedHeader, PC1 = model.PC1, PC2 = encrypted, PC2Secret = encryptedSecret }; StepServiceManager.UpdateStep(stepsModel, model.PC_Method.ToString()); return(4); } }
public IActionResult DeleteStepConf(int stepID) { StepsModel foundStep = _context.stepsList.FirstOrDefault(s => s.id == stepID); if (foundStep != null) { return(View(foundStep)); } else { return(Content("No step found with that ID")); } }
public IActionResult EditStepForm(int stepID) { StepsModel foundStep = _context.stepsList.FirstOrDefault(s => s.id == stepID); if (foundStep != null) { return(View(foundStep)); } else { return(Content("This step does not exist.")); } }
public async Task <JsonResult> ExecuteStep(string StepId) { ObserverDbContext _db = new ObserverDbContext(); StepsModel stepsModel = _db.Steps .Where(e => e.Id == StepId) .FirstOrDefault(); ObservesModel observesModel = stepsModel.Observes; if (observesModel.Users.Id == User.Identity.GetUserId()) { string pcMethodsModelId = null; string LabelPC1 = null; string LabelPC2 = null; int pcMethodsModelIdInt = 0; if (stepsModel.PC_Method != null) { pcMethodsModelId = stepsModel.PC_Method.Id; LabelPC1 = stepsModel.PC_Method.PC1; LabelPC2 = stepsModel.PC_Method.PC2; pcMethodsModelIdInt = int.Parse(pcMethodsModelId); } StepExecutionInputModel input = new StepExecutionInputModel() { Order = stepsModel.Order.GetValueOrDefault(), Uri = stepsModel.Url, Method = stepsModel.Method.GetValueOrDefault(), PC_Method = pcMethodsModelIdInt, PC1 = stepsModel.PC1, PC2 = stepsModel.PC2, CustomHeader = stepsModel.PredefinedHeader, PredefinedHeader = stepsModel.SetHeader.GetValueOrDefault(), LabelPC1 = LabelPC1, LabelPC2 = LabelPC2, PC2Secret = stepsModel.PC2Secret }; return(Json(await StepServiceManager.ExecuteStepReturningResult(input))); } else { StepExecutionOutputModel input = new StepExecutionOutputModel() { Status = "Unauthorized" }; return(Json(input)); } }
public IActionResult DeleteStep(int stepID) { StepsModel foundStep = _context.stepsList.FirstOrDefault(s => s.id == stepID); if (foundStep != null) { _context.Remove(foundStep); _context.SaveChanges(); return(RedirectToAction("ViewPosts")); } else { return(Content("No step found with that ID")); } }
public IActionResult AddStep(StepsModel newStep, int postID) { PostsModel foundPost = _context.postsList.Include(p => p.postSteps).FirstOrDefault(p => p.id == postID); if (foundPost != null) { foundPost.postSteps.Add(newStep); _context.SaveChanges(); return(RedirectToAction("AddStepForm", new { postID = foundPost.id })); } else { return(Content("Post not found!")); } }
public IActionResult EditStep(StepsModel upStep) { StepsModel foundStep = _context.stepsList.FirstOrDefault(s => s.id == upStep.id); if (foundStep != null) { foundStep.img = upStep.img; foundStep.step = upStep.step; _context.SaveChanges(); return(RedirectToAction("ViewPosts")); } else { return(Content("No step found with that ID")); } }
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 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(); } } }
/* * 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 int CreateNewStep(StepCreationInputModel model) { if (model.Url == null) { return(1); } else if (model.Method != 1 && model.Method != 2) { return(2); } else if (model.Priority != 1 && model.Priority != 2) { return(3); } else { ObserverDbContext _db = new ObserverDbContext(); ObservesModel observesModel = _db.Observes .Where(e => e.Id == model.ObserveId) .FirstOrDefault(); PCMethodsModel pcMethodsModel = _db.PCMethods .Where(e => e.Id == model.ContentMethod.ToString()) .FirstOrDefault(); byte[] encrypt = null; byte[] encryptSecret = null; string encrypted = null; string encryptedSecret = null; if (model.PC2 != null) { byte[] secretKey = Convert.FromBase64String(_db._AESSecretKeyS); using (AesManaged myAes = new AesManaged()) { encrypt = EncryptionAlgorithmServiceManager.EncryptStringToBytes_Aes(model.PC2, secretKey, myAes.IV); encryptSecret = myAes.IV; } } if (encrypt != null) { encrypted = Convert.ToBase64String(encrypt); encryptedSecret = Convert.ToBase64String(encryptSecret); } StepsModel stepsModel = new StepsModel() { Id = Guid.NewGuid().ToString(), Url = model.Url, Method = model.Method, SetHeader = model.Header, Deleted = false, PredefinedHeader = model.PredefinedHeader, PC_Method = pcMethodsModel, PC1 = model.PC1, PC2 = encrypted, PC2Secret = encryptedSecret }; int numStep = StepServiceManager.GetStepListByObserveId(model.ObserveId).Count(); if (numStep == 0) { if (StepServiceManager.CreateStep(User.Identity.GetUserId(), stepsModel, 1, model.ObserveId)) { return(4); } else { return(5); } } else { if (model.Priority == 1) { if (StepServiceManager.CreateStep(User.Identity.GetUserId(), stepsModel, 2, model.ObserveId)) { return(4); } else { return(5); } } if (model.Priority == 2) { if (StepServiceManager.CreateStep(User.Identity.GetUserId(), stepsModel, 3, model.ObserveId)) { return(4); } else { return(5); } } return(4); } } }