public async Task <IActionResult> AssignCompany(AssignCompanyModel aCM)
        {
            if (ModelState.IsValid)
            {
                var newFirma = new Firma()
                {
                    IdFirma = aCM.firma.IdFirma,
                    Nazwa   = aCM.firma.Nazwa
                };

                _s16693context.Add(newFirma);
                await _s16693context.SaveChangesAsync();

                var newKF = new KlientFirma()
                {
                    IdKlient = aCM.klient.IdKlient,
                    IdFirma  = newFirma.IdFirma
                };

                _s16693context.Add(newKF);

                await _s16693context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else if (!ModelState.IsValid)
            {
                return(View("AssignCompany", aCM));
            }
            return(View(aCM));
        }
        public async Task <IActionResult> TaskEdit(TaskEditModel tEM)
        {
            if (ModelState.IsValid)
            {
                _s16693context.Update(tEM.UslugaProjekt);
                await _s16693context.SaveChangesAsync();

                return(RedirectToAction("ProjectDetails", new { id = tEM.UslugaProjekt.IdProjekt }));
            }
            else if (!ModelState.IsValid)
            {
                return(View("TaskEdit", tEM));
            }
            return(View(tEM));
        }
        public async Task <IActionResult> Verify(string id)
        {
            bool Status = false;

            using (s16693Context dc = new s16693Context())
            {
                var v = await dc.Osoba.Where(e => e.KodAktywacyjny == new Guid(id)).FirstOrDefaultAsync();

                if (v != null)
                {
                    v.CzyEmailZweryfikowany = true;
                    Klient klient = new Klient()
                    {
                        IdKlient  = v.IdOsoba,
                        Priorytet = "nie"
                    };

                    dc.Klient.Add(klient);
                    await dc.SaveChangesAsync();

                    Status = true;
                }
                else
                {
                    ViewBag.Message = "Nieprawidłowe żądanie";
                }
            }
            ViewBag.Status = Status;

            return(View());
        }
        public async Task <IActionResult> Register(Osoba osoba)
        {
            bool   Status  = false;
            string Message = "";

            ModelState.Remove(nameof(Osoba.CzyEmailZweryfikowany));
            ModelState.Remove(nameof(Osoba.KodAktywacyjny));

            if (ModelState.IsValid)
            {
                s16693Context context1 = new s16693Context();
                {
                    var check = await context1.Osoba.Where(e => e.AdresEmail == osoba.AdresEmail).FirstOrDefaultAsync();

                    if (check != null)
                    {
                        ModelState.AddModelError("AdresEmail", "Podany adres e-mail już istnieje");
                    }
                    else
                    {
                        osoba.KodAktywacyjny        = Guid.NewGuid();
                        osoba.Haslo                 = Hash(osoba.Haslo);
                        osoba.CzyEmailZweryfikowany = false;
                        osoba.Rola = "Klient";

                        s16693Context context2 = new s16693Context();
                        {
                            context2.Osoba.Add(osoba);
                            await context2.SaveChangesAsync();

                            SendVerificationLink(osoba);

                            Message = "Rejestracja zakończona pomyślnie. Link do aktywacji konta został przesłany na twój adres e-mail " + osoba.AdresEmail;
                            Status  = true;
                        }
                    }
                }
            }
            else
            {
                Message = "Nieprawidłowe żądanie";
            }

            ViewBag.Message = Message;
            ViewBag.Status  = Status;
            return(View(osoba));
        }
        public async Task <IActionResult> ProjectCreate(ProjectCreateModel pCM)
        {
            if (ModelState.IsValid)
            {
                var fileName = Path.Combine(hostingEnvironment.WebRootPath + "/images", Path.GetFileName(pCM.FormFile.FileName));
                pCM.FormFile.CopyTo(new FileStream(fileName, FileMode.Create));

                var newProjekt = new Projekt()
                {
                    Nazwa   = pCM.projekt.Nazwa,
                    Logo    = "images/" + Path.GetFileName(pCM.FormFile.FileName),
                    IdFirma = pCM.projekt.IdFirma
                };

                _s16693context.Add(newProjekt);
                await _s16693context.SaveChangesAsync();

                var newZP = new ZespolProjekt()
                {
                    IdProjekt = newProjekt.IdProjekt,
                    IdZespol  = (int)pCM.zespol.IdZespol,
                    DataPrzypisaniaZespolu = DateTime.Now
                };

                var newPP = new ProjektPakiet()
                {
                    IdProjekt = newProjekt.IdProjekt,
                    IdPakiet  = (int)pCM.pakiet.IdPakiet,
                    DataRozpoczeciaWspolpracy = DateTime.Now
                };

                _s16693context.Add(newZP);
                _s16693context.Add(newPP);

                await _s16693context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else if (!ModelState.IsValid)
            {
                var firma  = from e in _s16693context.Firma select e;
                var zespol = from e in _s16693context.Zespol select e;
                var pakiet = from e in _s16693context.Pakiet select e;

                pCM.zespols = await zespol.ToListAsync();

                pCM.pakiets = await pakiet.ToListAsync();

                pCM.firmas = await firma.ToListAsync();

                return(View("ProjectCreate", pCM));
            }
            return(View(pCM));
        }