示例#1
0
        public Prijave Add(int TakmicenjeID, PrijavaInsert obj)
        {
            ValidirajDodavanje(TakmicenjeID, obj);

            var prijava = new Database.DTOs.Prijava
            {
                DatumPrijave = DateTime.Now,
                TakmicenjeID = TakmicenjeID,
                isTim        = obj.isTim,
                Naziv        = obj.Naziv
            };

            prijava.StanjePrijave = new Database.DTOs.Stanje_Prijave(prijava.ID);
            if (!obj.isTim)
            {
                prijava.Naziv = db.Igraci.Find(obj.Igrac1ID).PrikaznoIme;
            }

            db.Add(prijava);
            db.SaveChanges();

            KreirajPrijavuIgrac(obj, prijava.ID);

            return(mapper.Map <SharedModels.Prijave>(prijava));
        }
示例#2
0
        public IActionResult Dodaj(IgracDodajVM igrac)
        {
            if (ModelState.IsValid)
            {
                if (igrac.PrikaznoIme != null && !JeLiUnique(igrac.PrikaznoIme))
                {
                    ModelState.AddModelError(nameof(igrac.PrikaznoIme), "Prikazno ime je zauzeto.");
                    return(View(igrac));
                }
                int   id   = KreirajLoginIUsera();
                Igrac novi = new Igrac
                {
                    ID = id,
                    BrojPosjetaNaProfil = 0,
                    ELO         = 1000,
                    JacaRuka    = igrac.JacaRuka,
                    PrikaznoIme = igrac.PrikaznoIme,
                    Visina      = igrac.Visina
                };
                Statistika statistika = new Statistika(novi.ID);

                if (igrac.Slika != null)
                {
                    if (!igrac.Slika.ContentType.Contains("image"))
                    {
                        ModelState.AddModelError(nameof(igrac.Slika), "Mozete uploadat samo sliku.");
                    }
                    else
                    {
                        string ImeFajla = ProcesSpremanjaSlike(igrac);
                        novi.ProfileImagePath = "~/igraci/" + ImeFajla;
                    }
                }
                else
                {
                    novi.ProfileImagePath = "/profile_picture_default.png";
                }
                db.Add(novi);
                db.Add(statistika);
                db.SaveChanges();
                return(Redirect("/Igrac/PrikazProfila/" + novi.ID));
            }

            return(View(igrac));
        }
示例#3
0
        public async Task <IActionResult> Create([Bind("Id,PartNbr,Name,Price,Unit,PhotoPath,VendorId")] Product product)    /////////////
        {
            if (ModelState.IsValid)
            {
                _context.Add(product);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(product));
        }
示例#4
0
        public async Task <IActionResult> Create([Bind("Id,Code,Name,Address,City,State,Zip,Phone,Email")] Vendor vendor)
        {
            if (ModelState.IsValid)
            {
                _context.Add(vendor);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(vendor));
        }
        public Statistike Add(int userID)
        {
            Validiraj(userID);

            var statistika = new Database.DTOs.Statistika(userID);

            db.Add(statistika);
            db.SaveChanges();

            return(mapper.Map <SharedModels.Statistike>(statistika));
        }
示例#6
0
        public async Task <IActionResult> Create([Bind("id,Username,Password,Firstname,Lastname,Phone,Email,IsReviewer,IsAdmin")] User user)
        {
            if (ModelState.IsValid)
            {
                _context.Add(user);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(user));
        }
示例#7
0
 public async Task<IActionResult> Create([Bind("Id,PartNbr,Name,Price,Unit,PhotoPath,VendorId")] Product product)
 {
     if (ModelState.IsValid)
     {
         _context.Add(product);
         await _context.SaveChangesAsync();
         return RedirectToAction(nameof(Index));
     }
     ViewData["VendorId"] = new SelectList(_context.Vendors, "Id", "Address", product.VendorId);
     return View(product);
 }
示例#8
0
        public async Task <IActionResult> Create([Bind("Id,RequestId,ProductId,Quantity")] RequestLine requestLine)
        {
            if (ModelState.IsValid)
            {
                _context.Add(requestLine);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(requestLine));
        }
        public async Task <IActionResult> Create([Bind("Id,Description,Justification,RejectionReason,DeliveryMode,Status,Total,UserId")] Request request)
        {
            if (ModelState.IsValid)
            {
                _context.Add(request);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["UserId"] = new SelectList(_context.Users, "id", "Firstname", request.UserId);
            return(View(request));
        }
示例#10
0
        public async Task <IActionResult> Create([Bind("Id,RequestId,ProductId,Quantity")] RequestLine requestLine)
        {
            if (ModelState.IsValid)
            {
                _context.Add(requestLine);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProductId"] = new SelectList(_context.Products, "Id", "Name", requestLine.ProductId);
            ViewData["RequestId"] = new SelectList(_context.Requests, "Id", "Id", requestLine.RequestId);
            return(View(requestLine));
        }
        public async Task <ActionResult> Create(PostDto dto)
        {
            var post   = new Post();
            var lastId = context.Posts.Max(o => o.Id);

            post.Id    = lastId++;
            post.Title = dto.Title;
            post.Body  = dto.Body;
            post.Tags  = dto.Tags.Select(o => new Tag
            {
                Id   = o.Id,
                Name = o.Name
            }).ToList();

            context.Add(post);
            await context.SaveChangesAsync();

            return(Ok());
        }
示例#12
0
        public IActionResult Dodaj(CreateTakmicenjeVM objekat)
        {
            if (ModelState.IsValid)
            {
                if (PostojiTakmicenje(objekat.Naziv))
                {
                    ModelState.AddModelError("", "Vec postoji takmicenje u bazi");
                }
                if (!objekat.RucniOdabir)
                {
                    if (objekat.RokZavrsetkaPrijave != null && objekat.RokZavrsetkaPrijave != null &&
                        objekat.RokZavrsetkaPrijave < objekat.RokPocetkaPrijave)
                    {
                        ModelState.AddModelError(nameof(objekat.RokZavrsetkaPrijave), "Datum zavrsetka prijava ne moze biti prije pocetka");
                    }
                    if (objekat.DatumPocetka != null && objekat.RokZavrsetkaPrijave != null && objekat.DatumPocetka < objekat.RokZavrsetkaPrijave)
                    {
                        ModelState.AddModelError(nameof(objekat.DatumPocetka), "Datum pocetka ne moze biti prije zavrsetka prijava");
                    }
                }
                else
                {
                    //u slucaju da ljudi nisu dodali razmake ili ih je viska da ja popravim situaciju malo
                    if (!objekat.RucnoOdabraniIgraci.EndsWith(" "))
                    {
                        objekat.RucnoOdabraniIgraci += " ";
                    }
                    if (objekat.RucnoOdabraniIgraci.StartsWith(" "))
                    {
                        objekat.RucnoOdabraniIgraci = objekat.RucnoOdabraniIgraci.Substring(1);
                    }
                    //za sad je hardkodirana vrsta,ovo ionako ne bi trebalo nikad biti true osim ako je neko zaobisao frontend
                    if (objekat.VrstaID == 2 ||
                        objekat.RucnoOdabraniIgraci == "" ||
                        !ValidanUnosRegex(objekat.RucnoOdabraniIgraci) ||
                        !ValidnaKorisnickaImena(objekat.RucnoOdabraniIgraci)
                        )
                    {
                        ModelState.AddModelError("", "Molimo unesite ispravno imena igraca");
                    }
                    if (RucnaImenaSadrziDuplikate(objekat.RucnoOdabraniIgraci))
                    {
                        ModelState.AddModelError("", "Nemojte dva puta istog igraca navoditi");
                    }
                    if (BrojRucnoUnesenih(objekat.RucnoOdabraniIgraci) < 4)
                    {
                        ModelState.AddModelError("", "Minimalno 4 igraca za takmicenje");
                    }
                }

                if (ModelState.ErrorCount == 0)
                {
                    using (var transakcija = db.Database.BeginTransaction())//sigurnost u opasnim situacijama
                    {
                        try
                        {
                            Takmicenje novo           = new Takmicenje(objekat);
                            Feed       TakmicenjeFeed = new Feed
                            {
                                Naziv             = novo.Naziv + " feed",
                                DatumModifikacije = DateTime.Now
                            };
                            db.Feeds.Add(TakmicenjeFeed);
                            db.SaveChanges();
                            novo.FeedID = TakmicenjeFeed.ID;

                            db.Add(novo);
                            db.SaveChanges();

                            //dobaviti igrace iz regexa
                            if (objekat.RucniOdabir)
                            {
                                List <Igrac> svi = GetListaRucnihIgraca(objekat.RucnoOdabraniIgraci);
                                foreach (Igrac i in svi)
                                {
                                    Prijava novaPrijava = new Prijava
                                    {
                                        DatumPrijave = DateTime.Now,
                                        isTim        = false,
                                        Naziv        = i.PrikaznoIme,
                                        TakmicenjeID = novo.ID
                                    };

                                    novaPrijava.StanjePrijave = new Stanje_Prijave(novaPrijava.ID);
                                    db.Prijave.Add(novaPrijava);
                                    db.SaveChanges();

                                    Prijava_igrac PrijavaIgracPodatak = new Prijava_igrac
                                    {
                                        IgracID   = i.ID,
                                        PrijavaID = novaPrijava.ID
                                    };
                                    db.PrijaveIgraci.Add(PrijavaIgracPodatak);
                                    db.SaveChanges();
                                }
                            }
                            transakcija.Commit();
                            return(Redirect("/Takmicenje/Prikaz/" + novo.ID));
                        }
                        catch (DbUpdateException er)
                        {
                            transakcija.Rollback();
                            ModelState.AddModelError("", "Doslo je do greške prilikom spašavanja u bazu");
                        }
                    }
                }
            }
            LoadViewBag();
            return(View(objekat));
        }
示例#13
0
        public Takmicenja Add(TakmicenjaInsert objekat, int KreatorID)
        {
            ValidirajAddTakmicenja(objekat);
            var novo = mapko.Map <Takmicenje>(objekat);

            using (var transakcija = db.Database.BeginTransaction())//sigurnost u opasnim situacijama
            {
                try
                {
                    novo.KreatorID = KreatorID;
                    Feed TakmicenjeFeed = new Feed
                    {
                        Naziv             = novo.Naziv + " feed",
                        DatumModifikacije = DateTime.Now
                    };
                    db.Feeds.Add(TakmicenjeFeed);
                    db.SaveChanges();
                    novo.FeedID = TakmicenjeFeed.ID;

                    var statusKreiran = db.StatusiTakmicenja.Where(x => x.Opis == "Kreirano").FirstOrDefault();
                    novo.StatusID = statusKreiran.ID;

                    db.Add(novo);
                    db.SaveChanges();

                    //dobaviti igrace iz regexa
                    if (objekat.RucniOdabir)
                    {
                        validator._listaIgraca = db.Igraci.ToList();
                        List <Igrac> svi = validator.GetListaRucnihIgraca(objekat.RucnoOdabraniIgraci);
                        foreach (Igrac i in svi)
                        {
                            Prijava novaPrijava = new Prijava
                            {
                                DatumPrijave = DateTime.Now,
                                isTim        = false,
                                Naziv        = i.PrikaznoIme,
                                TakmicenjeID = novo.ID
                            };

                            novaPrijava.StanjePrijave = new Stanje_Prijave(novaPrijava.ID);
                            db.Prijave.Add(novaPrijava);
                            db.SaveChanges();

                            Prijava_igrac PrijavaIgracPodatak = new Prijava_igrac
                            {
                                IgracID   = i.ID,
                                PrijavaID = novaPrijava.ID
                            };
                            db.PrijaveIgraci.Add(PrijavaIgracPodatak);
                            db.SaveChanges();
                        }
                    }
                    transakcija.Commit();
                    var povratni = GetByID(novo.ID); // zbog includeova i to lakse odozgo nego da ponavljam kod ovdje
                    return(povratni);
                }
                catch (Exception)
                {
                    transakcija.Rollback();
                    throw new UserException("Greška prilikom spašavanja u bazu");
                }
            }
        }
示例#14
0
        public async Task <Users> Register(AccountInsert obj)
        {
            if (PostojiPrikaznoIme(obj.PrikaznoIme))
            {
                throw new UserException("Prikazno ime koje ste unijeli je vec zauzeto.");
            }

            var user = new IdentityUser <int>
            {
                UserName = obj.Email,
                Email    = obj.Email
            };

            var result = await usermanager.CreateAsync(user, obj.Password);

            if (result.Succeeded)
            {
                var igrac = new Igrac
                {
                    ID     = user.Id,
                    ELO    = 1000,
                    GradID = obj.GradId,
                    BrojPosjetaNaProfil = 0,
                    JacaRuka            = obj.JacaRuka,
                    PrikaznoIme         = obj.PrikaznoIme,
                    Spol             = obj.Spol,
                    Visina           = obj.Visina,
                    TwoFactorEnabled = false
                };
                if (obj.Slika != null)
                {
                    igrac.ProfileImagePath = "content/igraci/" + ProcesSpremanjaSlike(obj.Slika);
                }

                var userTemp = mapper.Map <SharedModels.Users>(obj);

                if (user.Id != 0)
                {
                    userTemp.ID = user.Id;
                }

                db.Add(igrac);
                db.SaveChanges();

                try
                {
                    var token = await usermanager.GenerateEmailConfirmationTokenAsync(user);

                    mailservis.PosaljiKonfirmacijskiMejl(token, user.Email, "api");
                }
                catch (Exception) {}
                // da imamo logger ovo bi samo loggovalo, posto nemamo nikom nista, ako nije stiglo korisnik posalje
                //zahtjev za ponovno slanje mejla i to je to

                return(userTemp);
            }
            else
            {
                var exception = new UserException();
                foreach (var error in result.Errors)
                {
                    exception.AddError(error.Code, error.Description);
                }
                throw exception;
            }
        }