Esempio n. 1
0
        public static UserEF UpdateFromDetached(this UserEF AttachedEF, UserEF DetachedEF)
        {
            if (AttachedEF is null)
            {
                throw new ArgumentNullException();
            }

            if (DetachedEF is null)
            {
                throw new NullReferenceException();
            }

            if (AttachedEF.Id != DetachedEF.Id)
            {
                throw new LoggedException("Cannot update userEF entity because it' not the same.");
            }

            if ((AttachedEF != default) && (DetachedEF != default))
            {
                AttachedEF.Role       = DetachedEF.Role;
                AttachedEF.Name       = DetachedEF.Name;
                AttachedEF.Email      = DetachedEF.Email;
                AttachedEF.Company    = DetachedEF.Company;
                AttachedEF.IsArchived = DetachedEF.IsArchived;
            }

            return(AttachedEF);
        }
Esempio n. 2
0
 public static UserTO ToTO(this UserEF user)
 {
     return(new UserTO
     {
         FirstName = user.FirstName,
         LastName = user.LastName,
     });
 }
Esempio n. 3
0
 public bool Remove(UserEF entity)
 {
     if (entity is null)
     {
         throw new ArgumentNullException(nameof(entity));
     }
     return(Remove(entity.Id));
 }
Esempio n. 4
0
        public IssueEF MarkAsCompleted(int IssueId, int UserId)
        {
            IssueEF issue = unitOfWork.IssuesRepository.GetById(IssueId);
            UserEF  user  = unitOfWork.UserRepository.GetById(UserId);

            issue.IsCompleted = true;
            var result = unitOfWork.IssuesRepository.Update(issue);

            return(result);
        }
Esempio n. 5
0
        public IssueEF BecomeResolver(int IssueId, int UserId)
        {
            IssueEF issue = unitOfWork.IssuesRepository.GetById(IssueId);
            UserEF  user  = unitOfWork.UserRepository.GetById(UserId);

            issue.Resolver = user;
            var result = unitOfWork.IssuesRepository.Update(issue);

            return(result);
        }
Esempio n. 6
0
        public UserEF Add(UserEF Entity)
        {
            if (Entity is null)
            {
                throw new ArgumentNullException(nameof(Entity));
            }
            var user   = Entity;
            var result = issuesContext.Users.Add(user);

            issuesContext.SaveChanges();
            return(result.Entity);
        }
Esempio n. 7
0
 public UserEF Update(UserEF Entity)
 {
     if (Entity is null)
     {
         throw new ArgumentNullException(nameof(Entity));
     }
     return(issuesContext
            .Users
            .Update(Entity)
            .Entity
            );
 }
Esempio n. 8
0
 public static UserTO ToTransfertObject(this UserEF user)
 {
     return(new UserTO
     {
         Id = user.Id,
         Name = user.Name,
         Company = user.Company,
         Email = user.Email,
         Role = user.Role,
         IsArchived = user.IsArchived,
     });
 }
Esempio n. 9
0
        private async Task LoadAsync(UserEF user)
        {
            var userName = await _userManager.GetUserNameAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            Username = userName;

            Input = new InputModel
            {
                PhoneNumber = phoneNumber
            };
        }
Esempio n. 10
0
        public static UserTO ToTransfertObject(this UserEF issue)
        {
            if (issue is null)
            {
                throw new ArgumentNullException(nameof(issue));
            }

            return(new UserTO
            {
                UserId = issue.UserId,
                Name = issue.Name
            });
        }
Esempio n. 11
0
        private async Task LoadAsync(UserEF user)
        {
            var email = await _userManager.GetEmailAsync(user);

            Email = email;

            Input = new InputModel
            {
                NewEmail = email,
            };

            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);
        }
Esempio n. 12
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new UserEF {
                    UserName = Input.Email, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName
                };
                user.Id = Guid.NewGuid().ToString();
                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());
        }
        private async Task LoadSharedKeyAndQrCodeUriAsync(UserEF user)
        {
            // Load the authenticator key & QR code URI to display on the form
            var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user);

            if (string.IsNullOrEmpty(unformattedKey))
            {
                await _userManager.ResetAuthenticatorKeyAsync(user);

                unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user);
            }

            SharedKey = FormatKey(unformattedKey);

            var email = await _userManager.GetEmailAsync(user);

            AuthenticatorUri = GenerateQrCodeUri(email, unformattedKey);
        }
Esempio n. 14
0
        public void Should_Contain_One_Attendee()
        {
            #region TOInitialization

            UserTO student = new UserTO()
            {
                Id          = 1,
                Name        = "Jacky Fringant",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Attendee,
            };

            UserTO teacher = new UserTO()
            {
                Id          = 2,
                Name        = "Johnny Begood",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Teacher
            };

            CourseTO sql = new CourseTO()
            {
                Id   = 1,
                Name = "SQL"
            };

            SessionTO sessionTO = new SessionTO()
            {
                Id          = 1,
                Teacher     = teacher,
                Course      = sql,
                SessionDays = new List <SessionDayTO>()
                {
                    new SessionDayTO()
                    {
                        Id = 1, Date = new DateTime(2020, 2, 3), PresenceType = SessionPresenceType.MorningAfternoon
                    },
                    new SessionDayTO()
                    {
                        Id = 2, Date = new DateTime(2020, 2, 4), PresenceType = SessionPresenceType.MorningAfternoon
                    },
                    new SessionDayTO()
                    {
                        Id = 3, Date = new DateTime(2020, 2, 5), PresenceType = SessionPresenceType.MorningAfternoon
                    }
                },

                Attendees = new List <UserTO>()
                {
                    student,
                }
            };

            #endregion TOInitialization

            #region EFInitialization

            UserEF studentEF = new UserEF()
            {
                Id          = 1,
                Name        = "Jacky Fringant",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Attendee,
            };

            UserEF teacherEF = new UserEF()
            {
                Id          = 2,
                Name        = "Johnny Begood",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Teacher
            };

            CourseEF sqlEF = new CourseEF()
            {
                Id   = 1,
                Name = "SQL"
            };

            SessionEF sessionEF = new SessionEF()
            {
                Id     = 1,
                Course = sqlEF,
            };

            List <UserSessionEF> userSessions = new List <UserSessionEF>()
            {
                new UserSessionEF
                {
                    SessionId = sessionEF.Id,
                    Session   = sessionEF,
                    UserId    = studentEF.Id,
                    User      = studentEF
                },
                new UserSessionEF
                {
                    SessionId = sessionEF.Id,
                    Session   = sessionEF,
                    UserId    = teacherEF.Id,
                    User      = teacherEF
                },
            };

            sessionEF.UserSessions = userSessions;

            #endregion EFInitialization

            SessionTO sessionConverted = sessionEF.ToTransfertObject();

            Assert.AreEqual(1, sessionConverted.Attendees.Count);
        }
Esempio n. 15
0
 public static UserTO ToTransferObject(this UserEF userEF)
 {
     throw new NotImplementedException();
 }
        public async Task <IActionResult> OnPostConfirmationAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            // Get the information about the user from the external login provider
            var info = await _signInManager.GetExternalLoginInfoAsync();

            if (info == null)
            {
                ErrorMessage = "Error loading external login information during confirmation.";
                return(RedirectToPage("./Login", new { ReturnUrl = returnUrl }));
            }

            if (ModelState.IsValid)
            {
                var user = new UserEF {
                    UserName = Input.Email, Email = Input.Email
                };

                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await _userManager.AddLoginAsync(user, info);

                    if (result.Succeeded)
                    {
                        _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider);

                        var userId = await _userManager.GetUserIdAsync(user);

                        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 = userId, code = code },
                            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 account confirmation is required, we need to show the link if we don't have a real email sender
                        if (_userManager.Options.SignIn.RequireConfirmedAccount)
                        {
                            return(RedirectToPage("./RegisterConfirmation", new { Email = Input.Email }));
                        }

                        await _signInManager.SignInAsync(user, isPersistent : false, info.LoginProvider);

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

            ProviderDisplayName = info.ProviderDisplayName;
            ReturnUrl           = returnUrl;
            return(Page());
        }
        public void Should_Have_Same_Teacher_As_TO()
        {
            #region TOInitialization

            UserTO student = new UserTO()
            {
                Id          = 1,
                Name        = "Jacky Fringant",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Attendee,
            };

            UserTO teacher = new UserTO()
            {
                Id          = 2,
                Name        = "Johnny Begood",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Teacher
            };

            CourseTO sql = new CourseTO()
            {
                Id   = 1,
                Name = "SQL"
            };

            SessionTO sessionTO = new SessionTO()
            {
                Id          = 1,
                Teacher     = teacher,
                Course      = sql,
                SessionDays = new List <SessionDayTO>()
                {
                    new SessionDayTO()
                    {
                        Id = 1, Date = new DateTime(2020, 2, 3), PresenceType = SessionPresenceType.MorningAfternoon
                    },
                    new SessionDayTO()
                    {
                        Id = 2, Date = new DateTime(2020, 2, 4), PresenceType = SessionPresenceType.MorningAfternoon
                    },
                    new SessionDayTO()
                    {
                        Id = 3, Date = new DateTime(2020, 2, 5), PresenceType = SessionPresenceType.MorningAfternoon
                    }
                },

                Attendees = new List <UserTO>()
                {
                    student,
                }
            };

            #endregion TOInitialization

            #region EFInitialization

            UserEF studentEF = new UserEF()
            {
                Id          = 1,
                Name        = "Jacky Fringant",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Attendee,
            };

            UserEF teacherEF = new UserEF()
            {
                Id          = 2,
                Name        = "Johnny Begood",
                Email       = "*****@*****.**",
                IsActivated = true,
                Role        = UserRole.Teacher
            };

            CourseEF sqlEF = new CourseEF()
            {
                Id   = 1,
                Name = "SQL"
            };

            SessionEF sessionEF = new SessionEF()
            {
                Id     = 1,
                Course = sqlEF,
                Dates  = new List <SessionDayEF>()
                {
                    new SessionDayEF {
                        Id = 1, Date = new DateTime(2020, 01, 20), PresenceType = SessionPresenceType.MorningOnly
                    },
                    new SessionDayEF {
                        Id = 2, Date = new DateTime(2020, 01, 21), PresenceType = SessionPresenceType.MorningOnly
                    },
                    new SessionDayEF {
                        Id = 3, Date = new DateTime(2020, 01, 22), PresenceType = SessionPresenceType.MorningOnly
                    },
                },
            };

            List <UserSessionEF> userSessions = new List <UserSessionEF>()
            {
                new UserSessionEF
                {
                    SessionId = sessionEF.Id,
                    UserId    = studentEF.Id
                },

                new UserSessionEF
                {
                    SessionId = sessionEF.Id,
                    UserId    = teacherEF.Id
                }
            };

            sessionEF.UserSessions = userSessions;

            #endregion EFInitialization

            SessionEF sessionConverted = sessionTO.ToEF();

            //Assert.AreEqual(sessionEF.Teacher.Id, sessionConverted.Teacher.Id);
        }