예제 #1
0
        public async Task <string> RegisterDoctorAsync(AccountDoctorRegister accountDoctorRegister)
        {
            var user = new DbDoctor
            {
                FirstName            = accountDoctorRegister.FirstName,
                LastName             = accountDoctorRegister.LastName,
                Clinic               = accountDoctorRegister.Clinic,
                UserName             = accountDoctorRegister.PhoneNumber.ToStandardFormatPhoneNumber(),
                Email                = accountDoctorRegister.Email,
                PhoneNumber          = accountDoctorRegister.PhoneNumber.ToStandardFormatPhoneNumber(),
                PhoneNumberConfirmed = false,
                WorkingSchedules     = new List <DbWorkingSchedule>
                {
                    new DbWorkingSchedule {
                        FromDate = DateTime.Now, Hours = "0,0,0,0,0,0,0"
                    }
                }
            };

            var result = await _doctorManager.CreateAsync(user, accountDoctorRegister.Password);

            if (!result.Succeeded)
            {
                throw new BusinessException(ErrorCodes.IdentityError.ToString(), result.Errors?.FirstOrDefault().Description);
            }

            await _doctorManager.AddToRoleAsync(user, IdentityRoles.Doctor);

            var verifiedToken = await _twoFactorAuthenticationService.RequestVerifiedTokenAsync(user.PhoneNumber);

            return(verifiedToken);
        }
예제 #2
0
        public void Delete(int id)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            db.Roles
            .Where(role => role.Id == id)
            .Delete();
        }
예제 #3
0
        public void Add(string name)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var statement = db.Roles
                            .Value(role => role.Name, name)
                            .Insert();
        }
예제 #4
0
        public void Delete(int id)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            db.Users
            .Where(user => user.Id == id)
            .Delete();
        }
예제 #5
0
        /*
         * Default role is user
         * 1 - admin
         * 2 - doctor
         * 3 - patient
         */
        public void Add(string login, string password, int roleId = 3)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            db.Users
            .Value(user => user.Login, login)
            .Value(user => user.Password, RSAEncryption.Encrypt(password))
            .Value(user => user.RoleId, roleId)
            .Insert();
        }
예제 #6
0
        public Role GetByName(string name)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var query = from role in db.Roles
                        where role.Name == name
                        select role;
            var singleRole = query.ToList()[0];

            return(singleRole);
        }
예제 #7
0
        public Role Get(int id)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var query = from role in db.Roles
                        where role.Id == id
                        select role;
            var singleRole = query.ToList()[0];

            return(singleRole);
        }
예제 #8
0
        public List <Role> All()
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var query = from role in db.Roles
                        orderby role.Name descending
                        select role;
            var roles = query.ToList();

            return(roles);
        }
예제 #9
0
        public List <User> All()
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var query = from user in db.Users
                        orderby user.Login descending
                        select user;
            var users = query.ToList();

            return(users);
        }
        public async Task SaveChangesAsyncWithNewDoctorShouldSetCreatedAuditableProperties()
        {
            var doctor = new DbDoctor {
                UserId = this.userId, Name = "dr. strange"
            };

            this.data.Doctors.Add(doctor);

            await this.data.SaveChangesAsync();

            doctor.CreatedOn.ShouldBe(this.dateTime);
            doctor.CreatedBy.ShouldBe(this.userId);
        }
예제 #11
0
        public void Update(int id, string?name)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var role = Get(id);

            if (name != null)
            {
                role.Name = name;
            }

            db.Update(role);
        }
예제 #12
0
        public User GetByLogin(string login)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var queryable = from user in db.Users
                            where user.Login == login
                            join role in db.Roles on user.RoleId equals role.Id
                            select User.Build(user, role);

            var singleUser = queryable.ToList()[0];

            return(singleUser);
        }
예제 #13
0
        public bool Login(string login, string password)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var user = GetByLogin(login);

            if (user != null && password == RSAEncryption.Decrypt(user.Password))
            {
                return(true);
            }

            return(false);
        }
예제 #14
0
        public void Update(int id, string?password = null, int?roleId = null)
        {
            DataConnection.DefaultSettings = new MySettings(_test);

            using var db = new DbDoctor();
            var user = Get(id);

            if (password != null)
            {
                user.Password = RSAEncryption.Encrypt(password);
            }

            if (roleId != null)
            {
                user.RoleId = (int)roleId;
            }

            db.Update(user);
        }