Пример #1
0
        public ActionResult Create([Bind(Include = "NIF,nom,edat,email,password,Localitat,dataNaixement,telefon,tipus,cognoms,Codipostal")] PersonaVista persona)
        {
            try
            {
                //Validation validation = new Validation();
                mpiscatalunya municipi = bd.obtenirMunicipi(persona.Localitat);
                Adreça        e        = new Adreça(municipi.Nomcomarca, persona.Localitat, persona.Codipostal);

                // t = new Persona();
                //int i = (int)persona.tipus;


                switch (persona.tipus)
                {
                case TipusPersona.Client:
                {
                    if (bd.ExisteixEmail(persona.email))
                    {
                        ModelState.AddModelError("email", "L'email ha de ser únic");
                        ViewBag.Municipis = new SelectList(bd.obtenirMunicipis());
                        return(View());
                    }

                    if (ModelState.IsValid)
                    {
                        Client client = new Client(e, persona.NIF, persona.nom, persona.edat, persona.email, persona.password, persona.telefon.GetValueOrDefault(), persona.dataNaixement.HasValue ? persona.dataNaixement.Value : DateTime.Now, persona.Cognoms);
                        bd.afegirClient(client, e);

                        return(RedirectToAction("Index"));
                    }

                    break;
                }

                case TipusPersona.Administrador:
                {
                    if (bd.ExisteixEmail(persona.email))
                    {
                        ModelState.AddModelError("email", "L'email ha de ser únic");
                        ViewBag.Municipis = new SelectList(bd.obtenirMunicipis());
                        return(View());
                    }


                    //camps.Select(e => e);
                    if (ModelState.IsValid)
                    {
                        Administrador admin = new Administrador(e, persona.NIF, persona.nom, persona.edat, persona.email, persona.password, persona.telefon.GetValueOrDefault(), persona.dataNaixement.HasValue ? persona.dataNaixement.Value : DateTime.Now);

                        bd.afegirAdministrador(admin, e);

                        return(RedirectToAction("Index"));
                    }

                    break;
                }

                case TipusPersona.Director:
                {
                    if (ModelState.IsValid)
                    {
                        Director director = new Director(e, persona.NIF, persona.nom, persona.edat);
                        bd.afegirDirector(director, e);

                        return(RedirectToAction("Index"));
                    }
                    break;
                }

                case TipusPersona.Autor:
                {
                    if (ModelState.IsValid)
                    {
                        Autor autor = new Autor(e, persona.NIF, persona.nom, persona.edat);
                        bd.afegirAutor(autor, e);
                        return(RedirectToAction("Index"));
                    }

                    break;
                }

                default: break;
                }

                /*if (ModelState.IsValid)
                 * {
                 *
                 *  db.Persones.Add(persona);
                 *  db.SaveChanges();
                 *  return RedirectToAction("Index");
                 * }*/

                //ViewBag.AdreçaID = new SelectList(db.Adreces, "ID", "Comarca", persona.AdreçaID);
                ViewBag.Municipis = new SelectList(bd.obtenirMunicipis());
                ViewBag.Actual    = DateTime.Now.ToString("yyyy-MM-dd");
                //ModelState.AddModelError("", "Omple tots els camps");
                return(View());
            }catch (DbUpdateException e)
            {
                ViewBag.Actual    = DateTime.Now.ToString("yyyy-MM-dd");
                ViewBag.Municipis = new SelectList(bd.obtenirMunicipis());
                ModelState.AddModelError("NIF", "Aquest NIF ja existeix");
                return(View());
            }
        }
Пример #2
0
        public ActionResult Edit([Bind(Include = "NIF,nom,edat,email,password,Comarca,Localitat,Codipostal,tipus,telefon,dataNaixement,Cognoms")] PersonaVista person)
        {
            if (ModelState.IsValid)
            {
                Adreça        adreça   = null;
                mpiscatalunya municipi = bd.obtenirMunicipi(person.Localitat);
                if (person.tipus == TipusPersona.Autor || person.tipus == TipusPersona.Director)
                {
                    //Persona persona = new Persona(new Adreça(p.Comarca,p.Localitat,p.Codipostal),p.NIF,p.nom,p.edat);
                    Persona tmpp = bd.obtenirPersonaperNIF(person.NIF);

                    tmpp.edat = person.edat;
                    tmpp.nom  = person.nom;
                    adreça    = bd.obtenirAdreçaperId(tmpp.AdreçaID);
                    adreça.editarAdreça(municipi, person.Codipostal);

                    bd.editar(tmpp, adreça);

                    return(RedirectToAction("Index"));
                }
                else if (person.tipus == TipusPersona.Administrador)
                {
                    if (bd.ExisteixEmail(person.NIF, person.email))
                    {
                        ModelState.AddModelError("email", "L'email ha de ser únic");
                        return(View());
                    }
                    Administrador tmpp = bd.obtenirAdminperId(person.NIF);
                    adreça = bd.obtenirAdreçaperId(tmpp.AdreçaID);
                    adreça.editarAdreça(municipi, person.Codipostal);
                    tmpp.edat          = person.edat;
                    tmpp.nom           = person.nom;
                    tmpp.email         = person.email;
                    tmpp.password      = person.password;
                    tmpp.telefon       = person.telefon.GetValueOrDefault();
                    tmpp.dataNaixement = person.dataNaixement.HasValue ? person.dataNaixement.Value : DateTime.Now;


                    bd.editar(tmpp, adreça);

                    return(RedirectToAction("Index"));
                }
                else
                {
                    if (bd.ExisteixEmail(person.NIF, person.email))
                    {
                        ModelState.AddModelError("email", "L'email ha de ser únic");
                        return(View());
                    }
                    Client tmpp = bd.obtenirClientperId(person.NIF);
                    adreça = bd.obtenirAdreçaperId(tmpp.AdreçaID);
                    adreça.editarAdreça(municipi, person.Codipostal);
                    tmpp.edat          = person.edat;
                    tmpp.nom           = person.nom;
                    tmpp.email         = person.email;
                    tmpp.password      = person.password;
                    tmpp.telefon       = person.telefon.GetValueOrDefault();
                    tmpp.dataNaixement = person.dataNaixement.HasValue? person.dataNaixement.Value : DateTime.Now;
                    tmpp.Cognoms       = person.Cognoms;


                    bd.editar(tmpp, adreça);

                    return(RedirectToAction("Index"));
                }
            }
            //ViewBag.AdreçaID = new SelectList(db.Adreces, "ID", "Comarca", persona.AdreçaID);
            ViewBag.Municipis = new SelectList(bd.obtenirMunicipis());
            ViewBag.Actual    = DateTime.Now.ToString("yyyy-MM-dd");
            return(View());
        }