public async Task CreateAsync(Notificare notificare, int clientId) { _context.Notificari.Add(notificare); _context.SaveChanges(); var users = _context.ApplicationUsers .Include(x => x.Client) .Where(x => x.ClientId == clientId) .ToList(); foreach (var user in users) { var notificareUser = new NotificareUser() { }; notificareUser.ApplicationUserId = user.Id; notificareUser.NotificareId = notificare.NotificareId; _context.NotificareUsers.Add(notificareUser); } _context.SaveChanges(); // execute client side method from site.js await _hubContext.Clients.All.SendAsync("displayNotification", ""); }
private void Optionstart_DoWork(object sender, DoWorkEventArgs e) { dynamic data = e.Argument; switch (data.action.ToString()) { case "Shutdown": { Notificare.ShowBalloonTip(1000, "Optimised Cloud", "Sistemul se va opri in 2 secunde.", ToolTipIcon.Info); //Trimite messajul primit de la actiunea trimisa din Cloud. Functii.DownloadString("http://" + Functii.webip + "/notify/" + Key + "/" + token + "/shutdown/"); Thread.Sleep(2000); Shutdown.Shut(); break; } case "Restart": { Notificare.ShowBalloonTip(1000, "Optimised Cloud", "Sistemul se va reseta in 2 secunde.", ToolTipIcon.Info); //Trimite messajul primit de la actiunea trimisa din Cloud. Functii.DownloadString("http://" + Functii.webip + "/notify/" + Key + "/" + token + "/restart/"); Thread.Sleep(2000); Shutdown.Restart(); break; } default: break; } }
public async Task <IActionResult> Create(Response response) { var question = _context.Question.Find(response.QuestionId); if (ModelState.IsValid) { _context.Add(response); question.Rezolvata = true; _context.Update(question); await _context.SaveChangesAsync(); // Send notification to client about the new added response to his question Notificare notificare = new Notificare() { Text = $"Intrebarea dumneavoastra '{question.Intrebare}' a primit raspuns - {DateTime.Now}", RedirectToPage = $"/Clienti/Questions/Details/{question.QuestionId}" }; await _notificationManager.CreateChatNotificationAsync(notificare, question.ApplicationUserId); TempData["Message"] = "Raspuns adaugat cu succes!"; TempData["Success"] = "true"; return(RedirectToAction("Index", "Questions")); } ViewData["QuestionId"] = new SelectList(_context.Question, "QuestionId", "Intrebare", response.QuestionId); return(View(response)); }
private void Optimised_FormClosing(object sender, FormClosingEventArgs e) { Notificare.Dispose(); var proc = Process.GetCurrentProcess().ProcessName; foreach (var process in Process.GetProcessesByName(proc)) { process.Kill(); } }
private void Opensite_DoWork(object sender, DoWorkEventArgs e) { dynamic data = e.Argument; if (data.url != null) { Process.Start(data.url.ToString()); //Porneste site-ul trimis din cloud. Notificare.ShowBalloonTip(1000, "Optimised Cloud", "Site-ul: " + data.url + " a pornit.", ToolTipIcon.Info); //Trimite messajul primit de la actiunea trimisa din Cloud. Functii.DownloadString("http://" + Functii.webip + "/notify/" + Key + "/" + token + "/site/" + Functii.Base64Encode(data.url.ToString())); } }
public async Task <IActionResult> Create(DocumentVM documentVM, int?id) { var denumireDocument = _context.TipDocument.Find(documentVM.TipDocumentId); Document document = new Document() { DocumentId = documentVM.DocumentId, ApplicationUserId = documentVM.ApplicationUserId, ClientId = documentVM.ClientId, TipDocumentId = documentVM.TipDocumentId, DocumentPath = await _fileManager.SaveDocument(documentVM.DocumentPathUrl, denumireDocument.Denumire, documentVM.ClientId, documentVM.ApplicationUserId), Data = documentVM.Data }; if (ModelState.IsValid) { _context.Document.Add(document); await _context.SaveChangesAsync(); // aici notificam user-ul ca a primit un document Notificare notificare = new Notificare(); string redirectToPage = "https://localhost:44342/img/documente/" + document.DocumentPath; if (id == 0 || id == null) { notificare.Text = $"{denumireDocument.Denumire} pentru {document.Data} a fost incarcate pe data de {DateTime.Now}"; notificare.RedirectToPage = redirectToPage; await _notificationManager.CreateAsync(notificare, document.ClientId); } else { // atunci am fost redirectati dinspre "Incarca document" - modul cereri documente, incarcare cerere var cerereDocument = _context.CereriDocumente.FindAsync(id).Result; Salariat salariat = _context.Salariat.FirstOrDefault(x => x.SalariatId == cerereDocument.SalariatId); notificare.Text = "Cererea pentru " + cerereDocument.DenumireCerere + " pentru firma " + cerereDocument.DenumireClient + ", salariatul " + salariat.NumePrenume + " deadline la " + cerereDocument.DataStart + " a fost incarcata " + DateTime.Now; notificare.RedirectToPage = redirectToPage; await _notificationManager.CreateAsync(notificare, _context.Client.FirstOrDefault(x => x.Denumire == cerereDocument.DenumireClient).ClientId); cerereDocument.Resolved = true; cerereDocument.AdeverintaPath = document.DocumentPath; _context.CereriDocumente.Update(cerereDocument); await _context.SaveChangesAsync(); } TempData["Message"] = "Document adaugat cu succes!"; TempData["Success"] = "true"; return(RedirectToAction(nameof(Index))); } ViewData["ClientId"] = new SelectList(_context.Client.OrderBy(x => x.Denumire), "ClientId", "Denumire", document.ClientId); ViewData["ApplicationUserId"] = new SelectList(_context.ApplicationUsers.OrderBy(x => x.Nume), "Id", "Nume", document.ApplicationUserId); ViewData["TipDocumentId"] = new SelectList(_context.TipDocument.OrderBy(x => x.Denumire), "TipDocumentId", "Denumire", document.TipDocumentId); return(View(documentVM)); }
public void CreateNotificationQuestionsByAdmin(Notificare notificare, List <ApplicationUser> users) { _context.Notificari.Add(notificare); _context.SaveChanges(); foreach (var user in users) { var notificareUser = new NotificareUser() { }; notificareUser.ApplicationUserId = user.Id; notificareUser.NotificareId = notificare.NotificareId; _context.NotificareUsers.Add(notificareUser); } _context.SaveChanges(); }
public async Task CreateChatNotificationAsync(Notificare notificare, string userId) { _context.Notificari.Add(notificare); _context.SaveChanges(); var notificareUser = new NotificareUser() { }; notificareUser.ApplicationUserId = userId; notificareUser.NotificareId = notificare.NotificareId; _context.NotificareUsers.Add(notificareUser); _context.SaveChanges(); // execute client side method from site.js await _hubContext.Clients.All.SendAsync("displayNotification", ""); }
public async Task <IActionResult> Create(CerereDocument data) { var user = _userManager.GetUserAsync(User).Result; var admin = _context.ApplicationUsers.Where(x => x.Email.Contains("dana_moisi")).FirstOrDefault(); if (ModelState.IsValid) { data.DenumireCerere = _context.TipCereri.Find(data.TipCerereId).Denumire; var salariat = _context.Salariat.FirstOrDefault(x => x.SalariatId == data.SalariatId); string redirectToPage = "/Clienti/CereriDocumente/Index"; if (data.CerereDocumentId != 0) { // edit _context.CereriDocumente.Update(data); await _context.SaveChangesAsync(); // trimitem notificari adminilor Notificare notificare = new Notificare(); notificare.Text = user.Nume + " a editat cererea de " + data.DenumireCerere + " pentru firma " + data.DenumireClient + ", salariatul " + salariat.NumePrenume + " deadline la " + data.DataStart; notificare.RedirectToPage = redirectToPage; await _notificationManager.CreateAsyncNotificationForAdmin(notificare, admin.Id); return(Json(new { success = true, message = "Cerere editata cu succes!" })); } else { // add _context.CereriDocumente.Add(data); await _context.SaveChangesAsync(); // trimitem notificari adminilor Notificare notificare = new Notificare(); notificare.Text = user.Nume + " a depus o cerere de " + data.DenumireCerere + " pentru firma " + data.DenumireClient + ", salariatul " + salariat.NumePrenume + " deadline la " + data.DataStart; notificare.RedirectToPage = redirectToPage; await _notificationManager.CreateAsyncNotificationForAdmin(notificare, admin.Id); return(Json(new { success = true, message = "Cerere adaugata cu succes!" })); } } return(Json(new { success = false, message = "A aparut o eroare, va rugam reincercati!" })); }
public async Task <IActionResult> SendMessage( int roomId, string message) { var chatUsers = await _context.ChatUsers .Include(x => x.ApplicationUser) .Where(x => x.ChatId == roomId) .AsNoTracking() .ToListAsync(); ApplicationUser user = _userManager.GetUserAsync(User).Result; ApplicationUser admin = _context.ApplicationUsers.Where(x => x.Email.Contains("dana_moisi")).FirstOrDefault(); string sender = ""; string receiver = ""; string redirectToPage = ""; if (user.Email.Contains("dana_moisi")) { sender = admin.Nume; receiver = chatUsers.Where(x => !x.ApplicationUserId.Equals(admin.Id)).First().ApplicationUserId; redirectToPage = $"/Chat/Chat"; } else { sender = user.Nume; receiver = admin.Id; redirectToPage = $"/Chat/Chat/{roomId}"; } if (await _chatManager.SendMessage(roomId, message, user.UserName)) { Notificare notificare = new Notificare() { }; notificare.Text = $"{sender} v-a trimis un mesaj - ${DateTime.Now}"; notificare.RedirectToPage = redirectToPage; await _notificationManager.CreateChatNotificationAsync(notificare, receiver); return(Ok()); } return(NotFound()); }
public async Task <IActionResult> Create(Question question) { if (!User.IsInRole(ConstantVar.Rol_Admin)) { var user = _context.ApplicationUsers.FirstOrDefault(u => u.UserName == User.Identity.Name); question.ApplicationUserId = user.Id; } if (ModelState.IsValid) { _context.Question.Add(question); await _context.SaveChangesAsync(); var user = await _userManager.GetUserAsync(User); var qCategory = _context.QuestionCategory.First(x => x.QuestionCategoryId == question.QuestionCategoryId).Denumire; Notificare notificare = new Notificare() { Text = $"{user.Nume} a adaugat o intrebare din categoria {qCategory} in forumul Q&A in data de {DateTime.Now}", RedirectToPage = $"/Clienti/Questions/Details/{question.QuestionId}" }; if (await _userManager.IsInRoleAsync(user, ConstantVar.Rol_Admin_Firma)) { // Send notification to admin about the new added question await _notificationManager.CreateAsyncNotificationForAdmin(notificare, _context.ApplicationUsers.First(x => x.Email.Contains("dana_moisi")).Id); } else { var allUsers = _userManager.Users.Where(x => x.Id != user.Id).ToList(); _notificationManager.CreateNotificationQuestionsByAdmin(notificare, allUsers); } TempData["Message"] = "Intrebare adaugata cu succes!"; TempData["Success"] = "true"; } ViewData["ApplicationUserId"] = new SelectList(_context.ApplicationUsers, "Id", "Nume", question.ApplicationUserId); ViewData["QuestionCategoryId"] = new SelectList(_context.QuestionCategory, "QuestionCategoryId", "Denumire", question.QuestionCategoryId); ViewBag.LoggedUser = _userManager.GetUserId(User); return(PartialView("_AddQuestion", question)); }
public async Task <IActionResult> Create(DocumentVM documentVM) { var denumireDocument = _context.TipDocument.Find(documentVM.TipDocumentId); var user = _context.ApplicationUsers.FirstOrDefault(u => u.UserName == User.Identity.Name); Console.WriteLine(documentVM.DocumentPathUrl); Document document = new Document() { DocumentId = documentVM.DocumentId, ApplicationUserId = user.Id, Data = DateTime.Now, ClientId = user.ClientId.Value, TipDocumentId = documentVM.TipDocumentId, DocumentPath = await _fileManager.SaveDocument(documentVM.DocumentPathUrl, denumireDocument.Denumire, user.ClientId.Value, user.Id) }; if (ModelState.IsValid) { _context.Document.Add(document); await _context.SaveChangesAsync(); TempData["Message"] = "Document transmis cu succes!"; TempData["Success"] = "true"; var admin = _context.ApplicationUsers.FirstOrDefault(x => x.Email.Contains("dana_moisi")).Id; Notificare notificare = new Notificare(); string redirectToPage = "https://localhost:44342/img/documente/" + document.DocumentPath; notificare.Text = $"{User.Identity.Name} a incarcat {denumireDocument.Denumire} pentru {document.Data} in {DateTime.Now}"; notificare.RedirectToPage = redirectToPage; await _notificationManager.CreateAsyncNotificationForAdmin(notificare, admin); return(RedirectToAction(nameof(Index))); } ViewData["UserId"] = user.Nume; ViewData["ClientId"] = _context.Client.Find(document.ClientId).Denumire; ViewData["TipDocumentId"] = new SelectList(_context.TipDocument.OrderBy(x => x.Denumire), "TipDocumentId", "Denumire", document.TipDocumentId); return(View(documentVM)); }
public async Task <IActionResult> Create(Plata plata) { if (ModelState.IsValid) { _context.Plati.Add(plata); await _context.SaveChangesAsync(); var tipPlata = _context.TipPlati.Where(x => x.TipPlataId == plata.TipPlataId).First().Denumire; // Send notificare after creating plata Notificare notificare = new Notificare() { Text = $"Contsal a adaugat suma de plata pentru {tipPlata}, data: {plata.Data}, data scadenta: {plata.DataScadenta}", RedirectToPage = "/Informatii/Plati" }; await _notificationManager.CreateAsync(notificare, plata.ClientId); TempData["Message"] = "Plata adaugata cu succes!"; TempData["Success"] = "true"; return(RedirectToAction(nameof(Index))); } ViewData["ClientId"] = new SelectList(_context.Client.OrderBy(x => x.Denumire), "ClientId", "Denumire", plata.ClientId); ViewData["TipPlataId"] = new SelectList(_context.TipPlati.OrderBy(x => x.Denumire), "TipPlataId", "Denumire", plata.TipPlataId); return(View(plata)); }
private void Optimised_All_DoWork(object sender, DoWorkEventArgs e) { ListBox.CheckForIllegalCrossThreadCalls = false; iTalk.iTalk_GroupBox.CheckForIllegalCrossThreadCalls = false; Notificare.ShowBalloonTip(1000, "Optimised Cloud", "Optimizarea trimisa din cloud pentru toti utilizatorii a inceput.", ToolTipIcon.Info); //Trimite messajul primit de la actiunea trimisa din Cloud. dynamic obj = (dynamic)e.Argument; if (obj["muic"] == 1) { try { regKey = Registry.CurrentUser.OpenSubKey(@"Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache", true); foreach (string value in regKey.GetValueNames()) { regKey.DeleteValue(value, true); } regKey.Close(); } catch { } } if (obj["pref"] == 1) { try { Array.ForEach(Directory.GetFiles(windows + @"Windows\Prefetch\", "*.pf"), delegate(string path) { File.Delete(path); if (!File.Exists(path)) { } }); } catch { }//Delete Prefetch } if (obj["rapp"] == 1) { try { RegistryKey regKeyAppRoot = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Search\RecentApps", true); foreach (string value in regKeyAppRoot.GetSubKeyNames()) { regKeyAppRoot.DeleteSubKeyTree(value, true); } regKeyAppRoot.Close(); } catch { }//Delete Regedit } if (obj["temp"] == 1) { string pat = Path.GetTempPath(); System.IO.DirectoryInfo di = new DirectoryInfo(pat.ToString()); foreach (FileInfo file in di.GetFiles()) { try { file.Delete(); if (!File.Exists(file.FullName)) { } } catch { } } foreach (DirectoryInfo dir in di.GetDirectories()) { try { dir.Delete(true); if (!Directory.Exists(dir.FullName)) { } } catch { } } } if (obj["trac"] == 1) { try { RegistryKey regKeyAppRoot = Registry.LocalMachine.OpenSubKey(@"Software\WOW6432Node\Microsoft\Tracing", true); foreach (string value in regKeyAppRoot.GetSubKeyNames()) { regKeyAppRoot.DeleteSubKeyTree(value, true); } regKeyAppRoot.Close(); } catch { }//Delete Regedit } if (obj["rebin"] == 1) { try { uint result = SHEmptyRecycleBin(IntPtr.Zero, null, RecycleFlags.SHERB_NOCONFIRMATION); } catch { } } if (obj["rfile"] == 1) { String recent = Environment.ExpandEnvironmentVariables("%APPDATA%") + @"\Microsoft\Windows\Recente"; try { Array.ForEach(Directory.GetFiles(recent, "*.*"), delegate(string path) { File.Delete(path); if (!File.Exists(path)) { } }); } catch { }//Delete Recent files try { SHAddToRecentDocs(ShellAddToRecentDocsFlags.Pidl, (IntPtr)(0)); } catch { } } if (obj["wlogs"] == 1) { foreach (var eventLog in EventLog.GetEventLogs()) { try { eventLog.Clear(); eventLog.Dispose(); } catch { } } } if (obj["mpoint"] == 1) { try { RegistryKey regKeyAppRoot = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2", true); foreach (string values in regKeyAppRoot.GetSubKeyNames()) { regKeyAppRoot.DeleteSubKeyTree(values, true); } } catch { }//Delete Regedit } if (obj["rstart"] == 1) { try { regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true); foreach (string value in regKey.GetValueNames()) { regKey.DeleteValue(value, true); } regKey.Close(); } catch { } } if (obj["useras"] == 1) { try { regKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist", true); foreach (string value in regKey.GetSubKeyNames()) { regKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\" + value.ToString() + @"\Count", true); foreach (string cont in regKey.GetValueNames()) { regKey.DeleteValue(cont, true); } } regKey.Close(); } catch { } } if (obj["compstore"] == 1) { try { RegistryKey regKeyAppRoot = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store", true); foreach (string values in regKeyAppRoot.GetValueNames()) { regKeyAppRoot.DeleteValue(values, true); } } catch { }//Delete Regedit } Notificare.ShowBalloonTip(1000, "Optimised Cloud End", "Optimizarea trimisa din cloud pentru toti utilizatorii a fost efectuata.", ToolTipIcon.Info); //Trimite messajul primit de la actiunea trimisa din Cloud se termina. Functii.DownloadString("http://" + Functii.webip + "/notify/" + Key + "/" + token + "/all/"); }
public async Task <ActionResult> OrderSuccess([FromQuery] string session_id, [FromQuery] int plata_id) { var webRoot = _env.WebRootPath; var sessionService = new SessionService(); Session session = sessionService.Get(session_id); var customerService = new CustomerService(); Customer customer = customerService.Get(session.CustomerId); Plata plata = await _context.Plati .Include(x => x.Client) .FirstOrDefaultAsync(x => x.PlataId == plata_id); plata.Achitata = true; plata.SuccesPlata = true; _context.Plati.Update(plata); await _context.SaveChangesAsync(); // send notification of payment for admin Notificare notificare = new Notificare() { Text = $"{User.Identity.Name} a achitat plata pentru serviciile pentru luna {plata.Data}", RedirectToPage = "/Admin/Plata" }; await _notificationManager.CreateAsyncNotificationForAdmin(notificare, _context.ApplicationUsers.First(x => x.Email.Contains("dana_moisi")).Id); // notificare redirectToPage // send mail with invoice var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplates" + Path.DirectorySeparatorChar.ToString() + "PaymentConfirmation.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } string messageBody = string.Format(builder.HtmlBody, User.Identity.Name, plata.Suma, plata.Data ); IEnumerable <EmailAddress> emailAddresses = new List <EmailAddress>() { new EmailAddress() { Address = User.Identity.Name } }; var message = new Message(emailAddresses, "Plata cu succes servicii Contsal", messageBody); _emailSender.SendEmail(message); return(View(plata)); }