Esempio n. 1
0
        } // Create


        public async Task UpdateAsync( Guid id, GlucoseEntry glucoseEntry )
        {
            var dbGlucoseEntry = await ReadAsync( id );
            if( dbGlucoseEntry != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.UPDATE, dbGlucoseEntry.Id.ToString(), dbGlucoseEntry, glucoseEntry );
                    await _auditRepo.CreateAsync( auditChange );

                } // if

                dbGlucoseEntry.UserName = glucoseEntry.UserName;
                dbGlucoseEntry.Patient = glucoseEntry.Patient;
    			dbGlucoseEntry.Measurement = glucoseEntry.Measurement;
    			dbGlucoseEntry.BeforeAfter = glucoseEntry.BeforeAfter;
    			dbGlucoseEntry.WhichMeal = glucoseEntry.WhichMeal;
    			dbGlucoseEntry.CreatedAt = glucoseEntry.CreatedAt;
                dbGlucoseEntry.UpdatedAt = glucoseEntry.UpdatedAt;
                dbGlucoseEntry.Timestamp = glucoseEntry.Timestamp;
                _db.Entry( dbGlucoseEntry ).State = EntityState.Modified;
                await _db.SaveChangesAsync();
                return;
            }

        } // UpdateAsync
        public void SeedRoles()
        {
            _db.Database.EnsureCreated();
            AuditChange     change;
            ApplicationRole role;

            if (!_db.Roles.Any(r => r.Name == Roles.DOCTOR))
            {
                Debug.WriteLine("Creating Doctor role...");
                role = new ApplicationRole
                {
                    Name        = Roles.DOCTOR,
                    Description = "A role allowing doctors to view their patients' statistics.",
                    CreatedDate = DateTime.Now
                };
                _roleManager.CreateAsync(role);
                if (Config.AuditingOn)
                {
                    change = new AuditChange();
                    change.CreateAuditTrail(AuditActionType.CREATE, role.Id, new ApplicationRole(), role);
                    _auditRepository.CreateAsync(change);
                }
            }

            if (!_db.Roles.Any(r => r.Name == Roles.PATIENT))
            {
                Debug.WriteLine("Creating Patient role...");
                role = new ApplicationRole
                {
                    Name        = Roles.PATIENT,
                    Description = "A patient who is registered to a doctor.",
                    CreatedDate = DateTime.Now
                };
                _roleManager.CreateAsync(role);
                if (Config.AuditingOn)
                {
                    change = new AuditChange();
                    change.CreateAuditTrail(AuditActionType.CREATE, role.Id, new ApplicationRole(), role);
                    _auditRepository.CreateAsync(change);
                }
            }

            if (!_db.Roles.Any(r => r.Name == Roles.DEVELOPER))
            {
                Debug.WriteLine("Creating Developer role...");
                role = new ApplicationRole
                {
                    Name        = Roles.DEVELOPER,
                    Description = "A developer role allowing heightened permissions.",
                    CreatedDate = DateTime.Now
                };
                _roleManager.CreateAsync(role);
                if (Config.AuditingOn)
                {
                    change = new AuditChange();
                    change.CreateAuditTrail(AuditActionType.CREATE, role.Id, new ApplicationRole(), role);
                    _auditRepository.CreateAsync(change);
                }
            }
        } // SeedRoles
Esempio n. 3
0
        } // CreateAsync

        public async Task UpdateAsync(Guid id, HIPAAPrivacyNotice privacyNotice)
        {
            var dbNotice = await ReadAsync(id);

            if (dbNotice != null)
            {
                if (Config.AuditingOn)
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail(AuditActionType.UPDATE, privacyNotice.Id.ToString(), dbNotice, privacyNotice);
                    await _auditRepo.CreateAsync(auditChange);
                } // if

                dbNotice.CreatedAt  = privacyNotice.CreatedAt;
                dbNotice.NoticeText = privacyNotice.NoticeText;
                dbNotice.Title      = privacyNotice.Title;
                dbNotice.UpdatedAt  = DateTime.Now;
                dbNotice.Version    = privacyNotice.Version;

                _db.Entry(dbNotice).State = EntityState.Modified;
                await _db.SaveChangesAsync();
            } // if

            return;
        } // UpdateAsync
        } // Create


        public async Task UpdateAsync( Guid id, ExerciseEntry exerciseEntry )
        {
            var oldExerciseEntry = await ReadAsync( id );
            if( oldExerciseEntry != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    if( !auditChange.CreateAuditTrail( AuditActionType.UPDATE, exerciseEntry.Id.ToString(), oldExerciseEntry, exerciseEntry ) )
                        await _auditRepo.CreateAsync( auditChange );

                } // if

                oldExerciseEntry.UserName = exerciseEntry.UserName;
    			oldExerciseEntry.Patient = exerciseEntry.Patient;
    			oldExerciseEntry.Name = exerciseEntry.Name;
    			oldExerciseEntry.Minutes = exerciseEntry.Minutes;
    			oldExerciseEntry.CreatedAt = exerciseEntry.CreatedAt;
                oldExerciseEntry.UpdatedAt = exerciseEntry.UpdatedAt;
                oldExerciseEntry.Timestamp = exerciseEntry.Timestamp;
                _db.Entry( oldExerciseEntry ).State = EntityState.Modified;
                await _db.SaveChangesAsync();
                return;
            }

        } // UpdateAsync
        } // CreateAsync


        public async Task UpdateAsync( Guid id, MealItem mealItem )
        {
            var dbMealItem = await ReadAsync( id );
            if ( dbMealItem != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.UPDATE, mealItem.Id.ToString(), dbMealItem, mealItem );
                    await _auditRepo.CreateAsync( auditChange );

                } // if

                dbMealItem.Name = mealItem.Name;
                dbMealItem.Carbs = mealItem.Carbs;
                dbMealItem.Servings = mealItem.Servings;
                //oldMealItem.Meal = mealItem.Meal;
                //oldMealItem.MealId = mealItem.MealId;
                dbMealItem.UpdatedAt = mealItem.UpdatedAt;
                //oldMealItem.UpdatedAt = mealItem.UpdatedAt;
                _db.Entry( dbMealItem.Meal ).State = EntityState.Unchanged;
                _db.Entry( dbMealItem ).State = EntityState.Modified;
                await _db.SaveChangesAsync();
                return;
            }

        } // UpdateAsync
        } // CreateAsync

        public async Task UpdateAsync(string userName, Developer developer)
        {
            var oldDeveloper = await ReadAsync(userName);

            if (oldDeveloper != null)
            {
                if (Config.AuditingOn)
                {
                    var auditChange = new AuditChange();
                    if (!auditChange.CreateAuditTrail(AuditActionType.UPDATE, developer.Id, oldDeveloper, developer))
                    {
                        await _auditRepo.CreateAsync(auditChange);
                    }
                } // if

                if (!string.IsNullOrEmpty(developer.Title))
                {
                    oldDeveloper.Title = developer.Title;
                }

                _db.Entry(oldDeveloper).State = EntityState.Modified;
                await _db.SaveChangesAsync();

                await _userRepo.UpdateAsync(userName, developer);

                return;
            }
        } // UpdateAsync
Esempio n. 7
0
        } // CreateAsync

        public async Task UpdateAsync(string username, ApplicationUser applicationUser)
        {
            var dbUser = await ReadAsync(username);

            if (dbUser != null)
            {
                if (Config.AuditingOn)
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail(AuditActionType.UPDATE, applicationUser.Id, dbUser, applicationUser);
                    await _auditRepo.CreateAsync(auditChange);
                }

                if (!string.IsNullOrEmpty(applicationUser.Address1))
                {
                    dbUser.Address1 = applicationUser.Address1;
                }
                if (!string.IsNullOrEmpty(applicationUser.Address2))
                {
                    dbUser.Address2 = applicationUser.Address2;
                }
                if (!string.IsNullOrEmpty(applicationUser.City))
                {
                    dbUser.City = applicationUser.City;
                }
                if (!string.IsNullOrEmpty(applicationUser.Email))
                {
                    dbUser.Email = applicationUser.Email;
                }
                if (!string.IsNullOrEmpty(applicationUser.FirstName))
                {
                    dbUser.FirstName = applicationUser.FirstName;
                }
                if (!string.IsNullOrEmpty(applicationUser.LastName))
                {
                    dbUser.LastName = applicationUser.LastName;
                }
                if (!string.IsNullOrEmpty(applicationUser.PhoneNumber))
                {
                    dbUser.PhoneNumber = applicationUser.PhoneNumber;
                }
                if (!string.IsNullOrEmpty(applicationUser.State))
                {
                    dbUser.State = applicationUser.State;
                }
                dbUser.Zip1 = applicationUser.Zip1;
                dbUser.Zip2 = applicationUser.Zip2;

                _db.Entry(dbUser).State = EntityState.Modified;
                await _db.SaveChangesAsync();

                return;
            } // if
        }     // UpdateAsync
Esempio n. 8
0
        } // ReadAll

        public async Task <ApplicationUser> CreateAsync(ApplicationUser applicationUser)
        {
            _db.Users.Add(applicationUser);
            await _db.SaveChangesAsync();

            if (Config.AuditingOn)
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail(AuditActionType.CREATE, applicationUser.Id, new ApplicationUser(), applicationUser);
                await _auditRepo.CreateAsync(auditChange);
            }
            return(applicationUser);
        } // CreateAsync
        } // ReadAll

        public async Task <Developer> CreateAsync(Developer developer)
        {
            _db.Developers.Add(developer);
            await _db.SaveChangesAsync();

            if (Config.AuditingOn)
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail(AuditActionType.CREATE, developer.Id, new Doctor(), developer);
                await _auditRepo.CreateAsync(auditChange);
            } // if

            return(developer);
        } // CreateAsync
        } // DeleteAsync

        public ExerciseEntry Create(ExerciseEntry exerciseEntry)
        {
            _db.ExerciseEntries.Add(exerciseEntry);
            _db.SaveChanges();

            if( Config.AuditingOn )
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail( AuditActionType.CREATE, exerciseEntry.Id.ToString(), new ExerciseEntry(), exerciseEntry );
                _auditRepo.CreateAsync( auditChange );

            } // if

            return exerciseEntry;
        }// ExerciseEntry Create
Esempio n. 11
0
        } // ReadAll


        public async Task<MealEntry> CreateAsync( MealEntry mealentry )
        {
            _db.MealEntries.Add( mealentry );
            await _db.SaveChangesAsync();

            if( Config.AuditingOn )
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail( AuditActionType.CREATE, mealentry.Id.ToString(), new MealEntry(), mealentry );
                await _auditRepo.CreateAsync( auditChange );

            } // if

            return mealentry;

        } // Create
Esempio n. 12
0
        } // ReadAll


        public async Task<GlucoseEntry> CreateAsync( GlucoseEntry glucoseEntry )
        {
            _db.GlucoseEntries.Add( glucoseEntry );
            await _db.SaveChangesAsync();

            if( Config.AuditingOn )
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail( AuditActionType.CREATE, glucoseEntry.Id.ToString(), new GlucoseEntry(), glucoseEntry );
                await _auditRepo.CreateAsync( auditChange );

            } // if

            return glucoseEntry;

        } // Create
Esempio n. 13
0
        } // ReadAll

        public async Task <HIPAAPrivacyNotice> CreateAsync(HIPAAPrivacyNotice privacyNotice)
        {
            privacyNotice.CreatedAt = DateTime.Now;
            privacyNotice.UpdatedAt = DateTime.Now;
            await _db.HIPAAPrivacyNotices.AddAsync(privacyNotice);

            await _db.SaveChangesAsync();

            if (Config.AuditingOn)
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail(AuditActionType.CREATE, privacyNotice.Id.ToString(), new HIPAAPrivacyNotice(), privacyNotice);
                await _auditRepo.CreateAsync(auditChange);
            } // if

            return(privacyNotice);
        } // CreateAsync
Esempio n. 14
0
        } // ReadAsync


        public async Task<Doctor> CreateAsync( Doctor doctor )
        {
            doctor.SecurityStamp = Guid.NewGuid().ToString();
            _db.Doctors.Add( doctor );
            await _db.SaveChangesAsync();

            if( Config.AuditingOn )
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail( AuditActionType.CREATE, doctor.Id, new Doctor(), doctor );
                await _auditRepo.CreateAsync( auditChange );

            } // if

            return doctor;

        } // Create
        } // ReadAll


        public async Task<Patient> CreateAsync( Patient patient )
        {
            _db.Patients.Add( patient );
            _db.Entry( patient.PatientSignedHIPAANotice ).State = EntityState.Unchanged;
            await _db.SaveChangesAsync();

            if( Config.AuditingOn )
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail( AuditActionType.CREATE, patient.Id, new Patient(), patient );
                await _auditRepo.CreateAsync( auditChange );

            } // if

            return patient;

        } // Create
Esempio n. 16
0
        }     // UpdateAsync

        public async Task DeleteAsync(string username)
        {
            var user = await ReadAsync(username);

            if (user != null)
            {
                if (Config.AuditingOn)
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail(AuditActionType.DELETE, user.Id, user, new ApplicationUser());
                    await _auditRepo.CreateAsync(auditChange);
                }

                _db.Users.Remove(user);
                await _db.SaveChangesAsync();
            }
            return;
        } // DeleteAsync
        } // UpdateAsync

        public async Task DeleteAsync(string userName)
        {
            var developer = await ReadAsync(userName);

            if (developer != null)
            {
                if (Config.AuditingOn)
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail(AuditActionType.DELETE, developer.Id, developer, new Doctor());
                    await _auditRepo.CreateAsync(auditChange);
                } // if

                _db.Developers.Remove(developer);
                await _db.SaveChangesAsync();
            }
            return;
        } // DeleteAsync
Esempio n. 18
0
        } // UpdateAsync

        public async Task DeleteAsync(Guid id)
        {
            var notice = await ReadAsync(id);

            if (notice != null)
            {
                if (Config.AuditingOn)
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail(AuditActionType.DELETE, notice.Id.ToString(), notice, new HIPAAPrivacyNotice());
                    await _auditRepo.CreateAsync(auditChange);
                } // if

                _db.HIPAAPrivacyNotices.Remove(notice);
                await _db.SaveChangesAsync();
            }
            return;
        }
Esempio n. 19
0
        } // UpdateAsync


        public async Task DeleteAsync( Guid id )
        {
            var glucoseEntry = await ReadAsync( id );
            if( glucoseEntry != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.UPDATE, id.ToString(), glucoseEntry, new GlucoseEntry() );
                    await _auditRepo.CreateAsync( auditChange );
                }

                _db.GlucoseEntries.Remove( glucoseEntry );
                await _db.SaveChangesAsync();
            }

            return;

        } // DeleteAsync
        } // UpdateAsync


        public async Task DeleteAsync( string username )
        {
            if( Exists( username ) )
            {
                var patient = await ReadAsync( username );
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.DELETE, patient.Id, patient, new Patient() );
                    await _auditRepo.CreateAsync( auditChange );

                } // if

                _db.Patients.Remove( patient );
                await _db.SaveChangesAsync();
            }
            return;

        } // DeleteAsync
        } // UpdateAsync


        public async Task DeleteAsync( Guid id )
        {
            var mealItem = await ReadAsync( id );
            if ( mealItem != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.DELETE, mealItem.Id.ToString(), mealItem, new MealItem() );
                    await _auditRepo.CreateAsync( auditChange );

                } // if

                _db.MealItems.Remove( mealItem );
                await _db.SaveChangesAsync();
            }
            return;

        } // DeleteAsync
        } // UpdateAsync


        public async Task DeleteAsync( Guid id )
        {
            var exerciseentry = await ReadAsync( id );
            if( exerciseentry != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.DELETE, id.ToString(), exerciseentry, new ExerciseEntry() );
                    await _auditRepo.CreateAsync( auditChange );

                } // if

                _db.ExerciseEntries.Remove( exerciseentry );
                await _db.SaveChangesAsync();
            }
            return;

        } // DeleteAsync
Esempio n. 23
0
        } // Create


        public async Task UpdateAsync( Guid id, MealEntry mealEntry )
        {
            var dbMealEntry = await ReadAsync( id );
            if( dbMealEntry != null )
            {
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    auditChange.CreateAuditTrail( AuditActionType.UPDATE, mealEntry.Id.ToString(), dbMealEntry, mealEntry );
                    await _auditRepo.CreateAsync( auditChange );

                } // if

                dbMealEntry.UserName = mealEntry.UserName;
                dbMealEntry.Patient = mealEntry.Patient;
                dbMealEntry.TotalCarbs = mealEntry.TotalCarbs;
                dbMealEntry.CreatedAt = mealEntry.CreatedAt;
                dbMealEntry.UpdatedAt = mealEntry.UpdatedAt;
                dbMealEntry.Timestamp = mealEntry.Timestamp;
                //oldMealEntry.MealItems = mealEntry.MealItems;

                _db.Entry( mealEntry.MealItems ).State = EntityState.Unchanged;
                _db.Entry( dbMealEntry.MealItems ).State = EntityState.Unchanged;

                foreach( var mealItem in mealEntry.MealItems )
                    _db.Entry( mealItem ).State = EntityState.Unchanged;

                foreach( var mealItem in dbMealEntry.MealItems )
                    _db.Entry( mealItem ).State = EntityState.Unchanged;

                _db.Entry( dbMealEntry ).State = EntityState.Modified;
                await _db.SaveChangesAsync();
                return;
            }

        } // UpdateAsync
        } // ReadAll


        public async Task<MealItem> CreateAsync( Guid mealEntryId, MealItem mealItem )
        {
            var mealEntry = await _db.MealEntries
                .Include( o => o.MealItems )
                .SingleOrDefaultAsync( o => o.Id == mealEntryId );
            if ( mealEntry != null )
            {
                mealEntry.MealItems.Add( mealItem );    // Associate item with the entry
                mealItem.Meal = mealEntry;              // Associate the entry with the item
                await _db.SaveChangesAsync();

            }// End if mealEntry not null statement.

            if( Config.AuditingOn )
            {
                var auditChange = new AuditChange();
                auditChange.CreateAuditTrail( AuditActionType.CREATE, mealItem.Id.ToString(), new MealItem(), mealItem );
                await _auditRepo.CreateAsync( auditChange );

            } // if

            return mealItem;

        } // CreateAsync
        } // Create


        public async Task UpdateAsync( string username, Patient patient )
        {
            if( Exists( username ) )
            {
                var dbPatient = await ReadAsync( username );
                if( Config.AuditingOn )
                {
                    var auditChange = new AuditChange();
                    if( !auditChange.CreateAuditTrail( AuditActionType.UPDATE, patient.Id, dbPatient, patient ) )
                        await _auditRepo.CreateAsync( auditChange );

                } // if

                dbPatient.FirstName = patient.FirstName;
                dbPatient.LastName = patient.LastName;
                dbPatient.Address1 = patient.Address1;
                dbPatient.Address2 = patient.Address2;
                dbPatient.City = patient.City;
                dbPatient.State = patient.State;
                dbPatient.Zip1 = patient.Zip1;
                dbPatient.Zip2 = patient.Zip2;
                if( !String.IsNullOrEmpty( patient.PhoneNumber ) )
                    dbPatient.PhoneNumber = patient.PhoneNumber;
                if( !String.IsNullOrEmpty( patient.Email ) )
                    dbPatient.Email = patient.Email;
                if( patient.CreatedAt != null )
                    dbPatient.CreatedAt = patient.CreatedAt;
                dbPatient.UpdatedAt = DateTime.Now;
                if( !String.IsNullOrEmpty( patient.RemoteLoginToken.ToString() ) )
                    dbPatient.RemoteLoginToken = patient.RemoteLoginToken; // In case it has changed
                if( patient.Height > 0 )
                    dbPatient.Height = patient.Height;
                if( patient.Weight > 0 )
                    dbPatient.Weight = patient.Weight;
                if( patient.PatientSignedHIPAANotice != null )
                    dbPatient.PatientSignedHIPAANotice = patient.PatientSignedHIPAANotice;

                _db.Entry( dbPatient.Doctor ).State = EntityState.Detached;
                //_db.Attach( dbPatient.Doctor );
                //_db.Entry( dbPatient.Doctor ).Property( "Id" ).CurrentValue = patient.Doctor.Id;

                //if ( patient.Doctor != null )
                //{
                //    //dbPatient.DoctorUserName = patient.DoctorUserName;
                //    dbPatient.Doctor = patient.Doctor;
                //    _db.Entry( dbPatient.Doctor ).State = EntityState.Unchanged;
                //}

                //if ( dbPatient?.Doctor?.UserName == patient?.Doctor?.UserName )
                //{
                //}
                //else
                //{
                //    //if( !string.IsNullOrEmpty( patient.DoctorId ) && oldPatient.DoctorId != patient.DoctorId )
                //    //    oldPatient.DoctorId = patient.DoctorId;
                //    //if( !string.IsNullOrEmpty( patient.DrUserName ) && dbPatient.DrUserName != patient.DrUserName )
                //    //    dbPatient.DrUserName = patient.DrUserName;
                //    //if( patient.Doctor != null )
                //    //dbPatient.Doctor = patient.Doctor;
                //}

                _db.Entry( dbPatient ).State = EntityState.Modified;
                await _db.SaveChangesAsync();
            }
            return;

        } // UpdateAsync