protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["PaymentID"] != null)
        {
            if (Session["User"] == null)
            {
                Response.Redirect("~/Account/Login?ReturnUrl=Account/Payments/Payment?PaymentID=" + Request.QueryString["PaymentID"].ToString());
            }

            WebsiteUser Op = (WebsiteUser)Session["User"];

            if (Op.Level == 2)
            {
                Response.Redirect("~/Veterinary/");
            }
            else if (Op.Level == 3)
            {
                Response.Redirect("~/Admin/");
            }

            if (!Core.PaymentExists(Request.QueryString["PaymentID"].ToString()))
            {
                Response.Redirect("~/Account/Payments");
            }

            Core.FillPaymentFields(Request.QueryString["PaymentID"].ToString(), DataLimite, Metodo, Montante, Movimentacao, Estado);
        }
        else
        {
            Response.Redirect("~/Account/Payments");
        }
    }
Example #2
0
 private async Task SignInAsync(WebsiteUser user, bool isPersistent)
 {
     AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie, DefaultAuthenticationTypes.TwoFactorCookie);
     AuthenticationManager.SignIn(new AuthenticationProperties {
         IsPersistent = isPersistent
     }, await user.GenerateUserIdentityAsync(UserManager));
 }
        public async Task <IActionResult> Register(RegisterViewModel registerModel, string redirectUrl)
        {
            if (ModelState.IsValid)
            {
                WebsiteUser user = new WebsiteUser {
                    UserName = registerModel.Username,
                    Email    = registerModel.Email
                };
                var result = await _userManager.CreateAsync(user, registerModel.Password);

                if (result.Succeeded)
                {
                    bool roleExists = await _roleManager.RoleExistsAsync(registerModel.RoleName);

                    if (!roleExists)
                    {
                        await _roleManager.CreateAsync(new IdentityRole(registerModel.RoleName));
                    }
                    var addedUser = await _userManager.FindByNameAsync(registerModel.Username);

                    await _userManager.AddToRoleAsync(addedUser, registerModel.RoleName);

                    return(await Login(registerModel, redirectUrl));
                }
            }
            ViewBag.RedirectUrl = redirectUrl;
            return(View());
        }
        public async Task <IActionResult> RegisterWithRole(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                WebsiteUser user = new WebsiteUser
                {
                    UserHandle = model.UserHandle,
                    UserName   = model.Username,
                    Email      = model.Email
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var addedUser = await _userManager.FindByNameAsync(model.Username);

                    await _userManager.AddToRoleAsync(addedUser, "Administrator");

                    await _userManager.AddToRoleAsync(addedUser, "User");

                    return(await Login(model));
                }
            }

            return(View());
        }
        public async Task <IActionResult> RegisterWithClaim(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                WebsiteUser user = new WebsiteUser
                {
                    UserHandle = model.UserHandle,
                    UserName   = model.Username,
                    Email      = model.Email
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var addedUser = await _userManager.FindByNameAsync(model.Username);

                    if (!string.IsNullOrWhiteSpace(model.Email))
                    {
                        Claim claim = new Claim(ClaimTypes.Email, model.Email);

                        await _userManager.AddClaimAsync(addedUser, claim);
                    }

                    return(await Login(model));
                }
            }

            return(View());
        }
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        WebsiteUser Op    = (WebsiteUser)Session["User"];
        GridViewRow linha = GridView1.Rows[e.RowIndex];

        UInt32 consultID = Convert.ToUInt32(GridView1.Rows[e.RowIndex].Cells[0].Text);
        UInt32 newStatus = Convert.ToUInt32(((TextBox)linha.Cells[4].Controls[0]).Text);

        successMessage.Visible = true;
        switch (newStatus)
        {
        case 1:     //Espera Deslocamento
            Message.Text = (Core.UseVehicle(consultID, Op.ClientID, ref e));
            break;

        case 2:     //Espera Progresso
            Message.Text = (Core.UpdateConsult(consultID, newStatus, ref e));
            break;

        case 3:     //Espera Pagamento
            Message.Text = (Core.UpdateConsult(consultID, newStatus, ref e));
            break;

        case 4:     //Completo
            Message.Text = (Core.UpdateConsult(consultID, newStatus, ref e));
            break;

        default:
            e.Cancel               = true;
            Message.Text           = "Estado de consulta inválido!";
            successMessage.Visible = true;
            break;
        }
    }
    protected void LogIn(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (Account.ValidEmail(Email.Text))
            {
                switch (Account.Login(Email.Text, Password.Text, Response))
                {
                case 0:
                    FailureText.Text     = "Dados incorrectos ou conta recentemente eliminada.";
                    ErrorMessage.Visible = true;
                    break;

                case 1:
                    Session["User"] = new WebsiteUser(Email.Text, 1);

                    if (Request.QueryString["ReturnUrl"] != null)
                    {
                        Response.Redirect("~/" + Request.QueryString["ReturnUrl"].ToString());
                    }
                    else
                    {
                        Response.Redirect("~/Account/Manage");
                    }
                    break;

                case 2:
                    Session["User"] = new WebsiteUser(Email.Text, 2);

                    if (Request.QueryString["ReturnUrl"] != null)
                    {
                        Response.Redirect("~/" + Request.QueryString["ReturnUrl"].ToString());
                    }
                    else
                    {
                        Response.Redirect("~/Account/Manage");
                    }
                    break;

                case 3:
                    Session["User"] = new WebsiteUser(Email.Text, 3);

                    if (Request.QueryString["ReturnUrl"] != null)
                    {
                        Response.Redirect("~/" + Request.QueryString["ReturnUrl"].ToString());
                    }
                    else
                    {
                        Response.Redirect("~/Account/Manage");
                    }
                    break;
                }
            }
            else
            {
                FailureText.Text     = "Conta inexistente.";
                ErrorMessage.Visible = true;
            }
        }
    }
Example #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("~/Account/Login?ReturnUrl=Account/Consults/New");
        }

        WebsiteUser Op = (WebsiteUser)Session["User"];

        if (Op.Level == 2)
        {
            Response.Redirect("~/Veterinary/");
        }
        else if (Op.Level == 3)
        {
            Response.Redirect("~/Admin/");
        }

        if (Op.HasAnimals())
        {
            Core.LoadAnimals(AnimalList, Op.ClientID);
        }
        else
        {
            Response.Redirect("~/Account/Consults");
        }
    }
Example #9
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Page.IsValid && Urgente.SelectedValue != "-1")
        {
            DateTime dt = DateTime.Now;
            if (dt > DateTime.Parse(Dia.Text + " " + Horas.Text))
            {
                SuccessMessage         = "Impossível fazer marcações para essa data.";
                successMessage.Visible = true;
                return;
            }
            if (DateTime.Parse(Dia.Text + " " + Horas.Text).Hour < DateTime.Parse(Dia.Text + "  09:00 AM").Hour || DateTime.Parse(Dia.Text + " " + Horas.Text).Hour > DateTime.Parse(Dia.Text + "  5:00 PM").Hour)
            {
                SuccessMessage         = "Impossível fazer marcações para essa horas. As consultas sao efectuadas das 9 da manhã às 5 da tarde.";
                successMessage.Visible = true;
                return;
            }

            WebsiteUser Op = (WebsiteUser)Session["User"];

            SuccessMessage         = Core.RegisterConsult(Dia.Text + " " + Horas.Text, Convert.ToUInt32(AnimalList.SelectedValue), Convert.ToUInt32(Urgente.SelectedValue), Op.Address, Op.ClientID, Obs.Text);
            successMessage.Visible = true;
        }
        else
        {
            SuccessMessage         = "Occorreu um erro ao tentar validar a marcação.";
            successMessage.Visible = true;
        }
    }
Example #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("~/Account/Login?ReturnUrl=Account/EditAccount");
        }

        if (!IsPostBack)
        {
            WebsiteUser Op = (WebsiteUser)Session["User"];

            if (Op.Level == 2)
            {
                Response.Redirect("~/Veterinary/");
            }
            else if (Op.Level == 3)
            {
                Response.Redirect("~/Admin/");
            }

            Nome.Text         = Op.Username;
            Contacto.Text     = Convert.ToString(Op.Contact);
            Email.Text        = Op.Email;
            Morada.Text       = Op.Address;
            BI.Text           = Convert.ToString(Op.CC);
            Contribuinte.Text = Convert.ToString(Op.FiscalNumber);
        }
    }
Example #11
0
        public ActionResult Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var logon    = new ActiveDirectory(model.Username);
                var response = logon.Logon(model.Password);

                if (response == WindowsLogonResponse.Successful ||
                    response == WindowsLogonResponse.PasswordChangeRequired)
                {
                    WebsiteUser.Login(model.Username);
                }

                if (response == WindowsLogonResponse.Successful)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                if (response == WindowsLogonResponse.PasswordChangeRequired)
                {
                    TempData["Notice"] = "You are required to change your password.";
                    return(RedirectToAction("ChangePassword", "Home"));
                }

                ModelState.AddModelError(
                    "Invalid",
                    response == WindowsLogonResponse.LockedOut
                        ? "Take a chill pill. Stop trying for a while."
                        : "Invalid username and/or password");
                return(View());
            }

            return(View());
        }
Example #12
0
        public async Task <ActionResult> IndexClientAsync()
        {
            WebsiteUser currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

            string userMail = await _userManager.GetEmailAsync(currentUser);

            var liste = _depotCommandes.GetList().Where(c => c.IdClientNavigation.Mail == userMail);

            return(View("IndexClient", liste));
        }
Example #13
0
        public async Task <ActionResult> ValidateAsync(decimal total)
        {
            // Test si le User existe en tant que client, par l'adresse mail (requise comme unique)
            //TODO : identity : unicité de l'adresse mail
            WebsiteUser currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

            string userMail = await _userManager.GetEmailAsync(currentUser);

            Client client = _depotClients.GetList().Where(c => c.Mail == userMail).SingleOrDefault();

            //Si nouveau client, on envoie au controller, en stockant le total, dont on aura besoin
            if (client == null)
            {
                string totalSerialized = JsonConvert.SerializeObject(total);
                HttpContext.Session.SetString("total", totalSerialized);
                return(RedirectToAction("Create", "Client", new { mail = userMail }));
            }
            else if (!client.Actif)
            {
                return(RedirectToAction("Warning", "Client"));
            }
            else
            {
                Commande commande = new Commande()
                {
                    IdClient     = client.Id,
                    DateCommande = DateTime.Now,
                    IdStatut     = 1,
                    Total        = total,
                    IdAdresse    = client.IdAdresse
                };
                // TODO : gestion d'exception (ici et dans toute cette méthode)
                commande = _depotCommandes.Create(commande);
                //TODO : factoriser (ou TempData ?). Mais peut-être est-on obligés de repasser par là.
                string currentCartSerialized      = HttpContext.Session.GetString("Cart");
                Dictionary <int, int> currentCart = JsonConvert.DeserializeObject <Dictionary <int, int> >(currentCartSerialized);
                foreach (KeyValuePair <int, int> infosProduit in currentCart)
                {
                    Produit        produit        = _depotProduits.GetById(infosProduit.Key);
                    DetailCommande detailCommande = new DetailCommande()
                    {
                        IdCommande   = commande.Id,
                        IdProduit    = produit.Id,
                        PrixUnitaire = produit.PrixUnitaire,
                        Quantite     = infosProduit.Value
                    };
                    _depotDetail.Create(detailCommande);
                    produit.Stock -= infosProduit.Value;
                    _depotProduits.Update(produit);
                }
            }
            // Pour vider le panier après la commande. Ou mieux vaut SetString("Cart", """) ?
            HttpContext.Session.Remove("Cart");
            return(RedirectToAction("Index", "Tirelires"));
        }
        public void Service_RegistersUserCorrectly()
        {
            var websiteUser = new WebsiteUser()
            {
                Id = 1, Name = "Bahari Zaharov", IdentityUser = user
            };
            var result     = service.RegisterWebsiteUser(websiteUser);
            var userFromDb = uow.WebsiteUsers.FirstOrDefault(p => p.Name == "Bahari Zaharov");

            Assert.IsNotNull(userFromDb);
        }
Example #15
0
        public static async Task CreateAdminAndUserRoles(IServiceProvider serviceProvider)
        {
            // create the database if it doesn't exist
            var context = serviceProvider.GetRequiredService <ApplicationDbContext>();

            context.Database.Migrate();


            var RoleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();
            var UserManager = serviceProvider.GetRequiredService <UserManager <WebsiteUser> >();
            var newRole     = new IdentityRole();

            bool isAdminCreated = await RoleManager.RoleExistsAsync("Admin");

            var isAdminExists = await UserManager.FindByNameAsync("*****@*****.**");

            if (!isAdminCreated)
            {
                await RoleManager.CreateAsync(new IdentityRole("Admin"));

                newRole.Name = "Admin";
                await RoleManager.CreateAsync(newRole);
            }

            if (isAdminExists == null)
            {
                var adminUser = new WebsiteUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    FirstName      = "Michael",
                    LastName       = "Admin",
                    BirthDate      = DateTime.Parse("1990/05/03"),
                    Height         = 191,
                    Weight         = 100,
                    Gender         = "M",
                    ShoeSize       = 29.5,
                    PantSize       = 40,
                    HelmetSize     = "M",
                    GloveSize      = "M",
                    Level          = "Beginner",
                    EmailConfirmed = true
                };

                IdentityResult userCheck = await UserManager.CreateAsync(adminUser, appSecrets.adminPsw);

                if (userCheck.Succeeded)
                {
                    await UserManager.AddToRoleAsync(adminUser, "Admin");
                }
            }
        }
Example #16
0
        public ActionResult DoubleAuth(string code)
        {
            WebsiteUser user = (WebsiteUser)Session["AuthenticatedUser"];
            var         auth = new TwoStepsAuthenticator.TimeAuthenticator(usedCodeManager: usedCodesManager);

            if (auth.CheckCode(user.DoubleAuthKey, code, user))
            {
                FormsAuthentication.SetAuthCookie(user.Login, true);
                return(RedirectToAction("Welcome"));
            }

            return(RedirectToAction("Index"));
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("~/Account/Login");
        }
        WebsiteUser Op = (WebsiteUser)Session["User"];

        InfoLabel.Text = "Logout efectuado com exito. Até à proxima " + Op.Username;
        Session.Abandon();
        Session.Clear();
        Response.AddHeader("REFRESH", "5;URL=Login");
    }
Example #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("~/Account/Login?ReturnUrl=Admin/Vehicles");
        }

        WebsiteUser Op = (WebsiteUser)Session["User"];

        if (Op.Level != 3)
        {
            Response.Redirect("~/Default");
        }
    }
Example #19
0
        public WebsiteUser CreateWebsiteUser(ApplicationUser appuser)
        {
            if (appuser != null)
            {
                var user = new WebsiteUser
                {
                    Name         = appuser.UserName,
                    IdentityUser = appuser
                };

                return(user);
            }

            throw new ArgumentNullException(Consts.NullApplicationUserError);
        }
    protected void Delete_Click(object sender, EventArgs e)
    {
        String confirmValue = Request.Form["confirm_value"];

        if (confirmValue == "Sim")
        {
            WebsiteUser Op = (WebsiteUser)Session["User"];
            Account.Deactivate(Op.Email);
            Session.Abandon();
            Session.Clear();
            SuccessMessage         = "Conta eliminada com sucesso. Vai ser redirecionado dentro de 5 segundos.";
            successMessage.Visible = true;
            Response.AddHeader("REFRESH", "5;URL=Login");
        }
    }
Example #21
0
    public static Boolean isValidOwner(WebsiteUser obj, UInt32 AnimalID)
    {
        db = new SQLDatabaseManager();

        String query = "SELECT * FROM dbo.ANIMAL WHERE IDCLIENTE='" + obj.ClientID + "' AND IDANIMAL='" + AnimalID + "'";

        DataTable temp;

        temp = db.GetDataTable(query);

        if (temp.Rows.Count > 0)
        {
            return(true);
        }
        return(false);
    }
Example #22
0
    public static void LoadPayments(WebsiteUser Obj, HttpResponse Response)
    {
        String query = String.Format("SELECT * FROM dbo.PAGAMENTO WHERE IDCLIENTE='{0}'", Obj.ClientID);

        DataTable temp;

        temp = db.GetDataTable(query);

        foreach (DataRow r in temp.Rows)
        {
            Response.Write("<div class='col-md-4'>");
            Response.Write("<h4><u>Data: </u> " + r["DATA_LIMITE"].ToString().Remove(11) + "</h4>");
            Response.Write("<p><a class='btn btn-default' href='\\Account\\Payments\\Payment?PaymentID=" + r["IDPAGAMENTO"].ToString() + "'>Detalhes &raquo;</a></p>");
            Response.Write("</div>");
        }
    }
        public async Task <IActionResult> Register(RegisterViewModel model)
        {
            var user = new WebsiteUser {
                UserName = model.Email
            };
            IdentityResult result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View());
            }
        }
Example #24
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new WebsiteUser {
                    UserName = Input.Email, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName, BirthDate = Input.BirthDate, Height = Input.Height, Weight = Input.Weight, Gender = Input.Gender, ShoeSize = Input.ShoeSize, PantSize = Input.PantSize, HelmetSize = (Input.HelmetSize).ToString(), GloveSize = (Input.GloveSize).ToString(), Level = Input.Level
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
Example #25
0
        public async Task <IActionResult> Index()
        {
            WebsiteUser user = await _userManager.FindByNameAsync(User.Identity.Name);

            if (user != null)
            {
                UserDisplayViewModel model = new UserDisplayViewModel
                {
                    UserHandle = user.UserHandle,
                    UserName   = user.UserName
                };

                return(View(model));
            }

            return(View());
        }
    protected void CreateAnimal(object sender, EventArgs e)
    {
        WebsiteUser Op          = (WebsiteUser)Session["User"];
        WebImage    photo       = null;
        var         newFileName = "";
        var         imagePath   = "";

        if (IsValid)
        {
            photo = WebImage.GetImageFromRequest();
            if (photo != null)
            {
                newFileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(photo.FileName);
                imagePath   = @"Images\" + newFileName;
                photo.Resize(width: 250, height: 300, preserveAspectRatio: true, preventEnlarge: true);
                photo.Save(@"~\" + imagePath);
                ErrorMessage.Visible = true;

                Animal subject = new Animal(Nome.Text, Espécie.Text, Raca.Text, Convert.ToUInt32(Idade.Text.ToString()), Convert.ToUInt32(Peso.Text.ToString()), Convert.ToUInt32(Temperatura.Text.ToString()), imagePath, Op.ClientID, Convert.ToUInt32(DropDownTipo.Text));

                switch (Animal.Add(subject))
                {
                case 0:
                    ErrorMessage.Text = "Erro ao registar novo animal. Por favor verifique se os dados que inseriu são válidos.";
                    break;

                case 1:
                    ErrorMessage.Text = "O animal foi registdo com sucesso mas houve um problema ao enviar a foto.";
                    break;

                case 2:
                    ErrorMessage.Text = "Registo efectuado com sucesso.";
                    break;

                default:
                    ErrorMessage.Text = "Erro desconhecido.";
                    break;
                }
            }
            else
            {
                ErrorMessage.Text = "Foto inválida.";
            }
        }
    }
Example #27
0
        public bool RegisterWebsiteUser(WebsiteUser websiteUser)
        {
            if (websiteUser != null && websiteUser.Name != null)
            {
                var id           = websiteUser.IdentityUser.Id;
                var identityUser = this.context.Users.FirstOrDefault(p => p.Id == id);
                this.context.WebsiteUsers.Add(new WebsiteUser {
                    Name = websiteUser.Name, IdentityUser = identityUser
                });

                if (this.context.SaveChanges() > 0)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #28
0
        private async Task LoadAsync(WebsiteUser user)
        {
            var userName = await _userManager.GetUserNameAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            var firstName = user.FirstName;
            var lastName  = user.LastName;

            Username = userName;

            Input = new InputModel
            {
                PhoneNumber = phoneNumber,
                FirstName   = firstName,
                LastName    = lastName
            };
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("~/Account/Login?ReturnUrl=Veterinary/");
        }

        WebsiteUser Op = (WebsiteUser)Session["User"];

        if (Op.Level == 1)
        {
            Response.Redirect("~/Account/");
        }
        else if (Op.Level == 3)
        {
            Response.Redirect("~/Admin/");
        }
    }
Example #30
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("~/Account/Login?ReturnUrl=Admin/Vets");
        }

        WebsiteUser Op = (WebsiteUser)Session["User"];

        if (Op.Level != 3)
        {
            Response.Redirect("~/Default");
        }

        if (!IsPostBack)
        {
            successMessage.Visible = false;
        }
    }