示例#1
0
        private void CrearRoles()
        {
            RolesParqueadero roles = new RolesParqueadero();

            roles.CrearRoles("Administrador");
            roles.CrearRoles("Cajero");
        }
        public async Task <ActionResult> Create(Parqueadero parqueadero)
        {
            using (var transacion = db.Database.BeginTransaction())
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        RolesParqueadero rolesParqueadero = new RolesParqueadero();
                        var ResultadoParqueadero          = db.Parqueaderoes.Where(t => t.NitEmpresa_Parq == parqueadero.NitEmpresa_Parq).ToList();
                        if (ResultadoParqueadero.Count > 0)
                        {
                            throw new Exception(string.Format("El parquero {0} con número nit {1} ya existe, por favor intente recordar la contraseña.", parqueadero.NombreEmpresa_Parq, parqueadero.NitEmpresa_Parq));
                        }

                        var user = new ApplicationUser {
                            UserName = parqueadero.Correo_Parq, Email = parqueadero.Correo_Parq
                        };
                        var result = await UserManager.CreateAsync(user, parqueadero.CorreoContra_Parq);

                        if (result.Succeeded)
                        {
                            await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                            rolesParqueadero.AddPermisionToUser(user.Email, "Administrador");

                            parqueadero.Id_Parq = Guid.NewGuid();
                            db.Parqueaderoes.Add(parqueadero);
                            await db.SaveChangesAsync();

                            foreach (TipoVehiculos item in db.TipoVehiculos.ToList())
                            {
                                item.Valor_TVeh      = parqueadero.Valor_Parq;
                                db.Entry(item).State = EntityState.Modified;
                                await db.SaveChangesAsync();
                            }

                            ParqueaderoUsuarioDetalle parqueaderoUsuarioDetalle = new ParqueaderoUsuarioDetalle();

                            parqueaderoUsuarioDetalle.Id_Parq    = parqueadero.Id_Parq;
                            parqueaderoUsuarioDetalle.Id_PUD     = Guid.NewGuid();
                            parqueaderoUsuarioDetalle.IdUser_PUD = user.Id;

                            db.ParqueaderoUsuarioDetalle.Add(parqueaderoUsuarioDetalle);
                            await db.SaveChangesAsync();


                            transacion.Commit();
                            return(RedirectToAction("Index", "Home"));
                        }
                        else
                        {
                            foreach (var item in result.Errors)
                            {
                                ModelState.AddModelError(string.Empty, string.Format("Error al crear: {0}", item));
                            }

                            transacion.Rollback();
                            return(View(parqueadero));
                        }
                    }
                    else
                    {
                        return(View(parqueadero));
                        //return Json("Error", JsonRequestBehavior.AllowGet);
                    }
                }
                catch (Exception ex)
                {
                    transacion.Rollback();
                    ModelState.AddModelError(string.Empty, string.Format("Error al crear: {0}", ex.Message));
                    return(View(parqueadero));
                    //return Json(string.Format("Error: {0}",ex.Message), JsonRequestBehavior.AllowGet);
                }
            }
            //return Json(parqueadero, JsonRequestBehavior.AllowGet);
            return(View(parqueadero));
        }