Exemple #1
0
        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", "");
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        private void Optimised_FormClosing(object sender, FormClosingEventArgs e)
        {
            Notificare.Dispose();
            var proc = Process.GetCurrentProcess().ProcessName;

            foreach (var process in Process.GetProcessesByName(proc))
            {
                process.Kill();
            }
        }
Exemple #5
0
        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));
        }
Exemple #7
0
        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();
        }
Exemple #8
0
        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!" }));
        }
Exemple #10
0
        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));
        }
Exemple #12
0
        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));
        }
Exemple #14
0
        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/");
        }
Exemple #15
0
        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));
        }