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