public static bool DeleteHomeGroup(int groupId, ref string message) { bool success = false; using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { //Check to see if there is anyone in the group var peopleInGroup = (from pg in context.PersonGroups where pg.GroupId == groupId select pg).Count(); if (peopleInGroup == 0) { //Delete group var groupToDelete = (from g in context.Groups where g.GroupId == groupId select g).FirstOrDefault(); if (groupToDelete != null) { context.Groups.DeleteObject(groupToDelete); context.SaveChanges(); message = "Group succesfully deleted"; success = true; } else { message = "No group found to delete"; } } else { message = "Cannot delete group, there are still people in the group"; } } return success; }
public static bool DeleteHomeGroup(int groupId, bool confirmDelete, ref string message) { var success = false; using (var context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { var rolesToInclude = context.PermissionRoles.Where(p => p.PermissionId == (int) Permissions.IncludeInChurchList).Select(r => r.RoleId); var peopleInRoles = context.PersonChurches.Where(r => rolesToInclude.Contains(r.RoleId)).Select(p => p.PersonId); //Check to see if there is anyone in the group var peopleInGroup = (from pg in context.PersonGroups where pg.GroupId == groupId && peopleInRoles.Contains(pg.PersonId) select pg).Count(); if (peopleInGroup == 0 || confirmDelete) { //Delete any remaining people in the group var peopleLeftInGroup = (from pg in context.PersonGroups where pg.GroupId == groupId select pg); foreach (var pg in peopleLeftInGroup) { context.PersonGroups.DeleteObject(pg); } //Delete group var groupToDelete = (from g in context.Groups where g.GroupId == groupId select g).FirstOrDefault(); if (groupToDelete != null) { var linkedPersonToDelete = context.PersonLinkedToGroups.FirstOrDefault(p => p.GroupId == groupToDelete.GroupId && p.Description == CacheNames.OverseeingElder); if (linkedPersonToDelete != null) context.PersonLinkedToGroups.DeleteObject(linkedPersonToDelete); context.Groups.DeleteObject(groupToDelete); context.SaveChanges(); message = "Group succesfully deleted"; success = true; } else { message = "No group found to delete"; } } else { message = "Are you sure you want to delete this group, there are still people in the group?"; } } return success; }
public static void AddPersonToGroup(int groupId, int personId) { using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { //First check to see if they are not already there var check = (from pg in context.PersonGroups where pg.PersonId == personId && pg.GroupId == groupId select pg).FirstOrDefault(); if (check == null) { //Add them PersonGroup personGroup = new PersonGroup(); context.PersonGroups.AddObject(personGroup); personGroup.Created = DateTime.Now; personGroup.Changed = DateTime.Now; personGroup.PersonId = personId; personGroup.GroupId = groupId; personGroup.Joined = DateTime.Now; context.SaveChanges(); } } }
public static void SaveGroupSettings(Person currentPerson, GroupDto groupSettings) { using (var context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { //Check to see if the address already exists var address = new Address(); if (groupSettings.AddressId > 0) { address = (from a in context.Addresses where a.AddressId == groupSettings.AddressId select a).FirstOrDefault(); if (address == null) //Should never happen, but just to be sure { address = new Address {Created = DateTime.Now}; groupSettings.AddressId = 0; } } else { address.Created = DateTime.Now; } address.Line1 = groupSettings.Address1 ?? string.Empty; address.Line2 = groupSettings.Address2 ?? string.Empty; address.Line3 = groupSettings.Address3 ?? string.Empty; address.Line4 = groupSettings.Address4 ?? string.Empty; address.AddressType = groupSettings.AddressType ?? string.Empty; address.Lat = groupSettings.Lat; address.Long = groupSettings.Lng; address.Changed = DateTime.Now; if (groupSettings.AddressId == 0) { context.Addresses.AddObject(address); } var group = (from g in context.Groups where g.GroupId == groupSettings.GroupId select g).FirstOrDefault(); group.Address = address; context.SaveChanges(); } }
public static void SetHomeGroupLeader(Person currentPerson, int groupId, int leaderId) { using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { if (currentPerson.HasPermission(Permissions.SetGroupLeaderOrAdministrator)) { //Fetch the record var groupToUpdate = (from g in context.Groups where g.GroupId == groupId && g.ChurchId == currentPerson.ChurchId select g).FirstOrDefault(); if (groupToUpdate != null) { groupToUpdate.LeaderId = leaderId; context.SaveChanges(); } } } }
public static int SaveHomeGroup(Person currentPerson, HomeGroupsViewModel hgvm) { if (currentPerson.HasPermission(Permissions.EditGroups) || currentPerson.HasPermission(Permissions.AddGroups)) { using (var context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { var hg = new Group(); if (hgvm.GroupId != 0) { hg = (from g in context.Groups where g.GroupId == hgvm.GroupId select g).FirstOrDefault(); } else { hg.ChurchId = currentPerson.ChurchId; hg.Created = DateTime.Now; if (currentPerson.ChurchId == 3) //Ebenezer { hg.GroupTypeId = (int)GroupTypes.LifeGroup; } else { hg.GroupTypeId = (int)GroupTypes.HomeGroup; } context.Groups.AddObject(hg); } hg.Name = hgvm.GroupName; if (hgvm.LeaderId == 0 || string.IsNullOrEmpty(hgvm.LeaderName)) hg.LeaderId = null; else hg.LeaderId = hgvm.LeaderId; if (hgvm.AdministratorId == 0 || string.IsNullOrEmpty(hgvm.AdministratorName)) hg.AdministratorId = null; else hg.AdministratorId = hgvm.AdministratorId; hg.Changed = DateTime.Now; //Check to see if the address already exists if (hgvm.AddressId>0 || hgvm.Address1 != null || hgvm.Address2 != null || hgvm.Address3 != null || hgvm.Address4 != null || hgvm.SuburbId!=0) { var address = new Address(); if (hgvm.AddressId > 0) { address = (from a in context.Addresses where a.AddressId == hgvm.AddressId select a).FirstOrDefault(); if (address == null) //Should never happen, but just to be sure { address = new Address {Created = DateTime.Now}; hgvm.AddressId = 0; } } else { address.Created = DateTime.Now; } address.Line1 = hgvm.Address1 ?? ""; address.Line2 = hgvm.Address2 ?? ""; address.Line3 = hgvm.Address3 ?? ""; address.Line4 = hgvm.Address4 ?? ""; address.AddressType = hgvm.AddressType ?? ""; address.Lat = hgvm.Lat; address.Long = hgvm.Lng; address.ChurchSuburbId = hgvm.SuburbId != 0 ? hgvm.SuburbId : (int?)null; address.Changed = DateTime.Now; if (hgvm.AddressId == 0) { context.Addresses.AddObject(address); } hg.Address = address; } hg.GroupClassificationId = hgvm.GroupClassificationId == 0 ? (int?)null : hgvm.GroupClassificationId; context.SaveChanges(); if (hgvm.OverseeingElderId == 0 || string.IsNullOrEmpty(hgvm.OverseeingElderName)) { var linkedPersonToDelete = context.PersonLinkedToGroups.FirstOrDefault(p => p.GroupId == hgvm.GroupId && p.Description == CacheNames.OverseeingElder); if(linkedPersonToDelete!=null) context.PersonLinkedToGroups.DeleteObject(linkedPersonToDelete); } else { var linkedPersonToDelete = context.PersonLinkedToGroups.FirstOrDefault(p => p.GroupId == hgvm.GroupId && p.Description == CacheNames.OverseeingElder); if (linkedPersonToDelete != null) { context.PersonLinkedToGroups.DeleteObject(linkedPersonToDelete); } addNewElder(context, hg.GroupId, hgvm.OverseeingElderId); } context.SaveChanges(); return hg.GroupId; } } throw new ApplicationException("You do not have the required permission"); }
public static void SaveHomeGroup(Person currentPerson, HomeGroupsViewModel hgvm) { if (currentPerson.HasPermission(Permissions.EditGroups) || currentPerson.HasPermission(Permissions.AddGroups)) { using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { Group hg = new Group(); if (hgvm.GroupId != 0) { hg = (from g in context.Groups where g.GroupId == hgvm.GroupId select g).FirstOrDefault(); } else { hg.ChurchId = currentPerson.ChurchId; hg.Created = DateTime.Now; if (currentPerson.ChurchId == 3) //Ebenezer { hg.GroupTypeId = (int)GroupTypes.LifeGroup; } else { hg.GroupTypeId = (int)GroupTypes.HomeGroup; } context.Groups.AddObject(hg); } hg.Name = hgvm.GroupName; if (hgvm.LeaderId == 0 || hgvm.LeaderName == null || hgvm.LeaderName == string.Empty) hg.LeaderId = null; else hg.LeaderId = hgvm.LeaderId; if (hgvm.AdministratorId == 0 || hgvm.AdministratorName == null || hgvm.AdministratorName == string.Empty) hg.AdministratorId = null; else hg.AdministratorId = hgvm.AdministratorId; hg.Changed = DateTime.Now; //Check to see if the address already exists if (hgvm.AddressId>0 || hgvm.Address1 != null || hgvm.Address2 != null || hgvm.Address3 != null || hgvm.Address4 != null || hgvm.SuburbId!=0) { var address = new Address(); if (hgvm.AddressId > 0) { address = (from a in context.Addresses where a.AddressId == hgvm.AddressId select a).FirstOrDefault(); if (address == null) //Should never happen, but just to be sure { address = new Address(); address.Created = DateTime.Now; hgvm.AddressId = 0; } } else { address.Created = DateTime.Now; } address.Line1 = hgvm.Address1 == null ? "" : hgvm.Address1; address.Line2 = hgvm.Address2 == null ? "" : hgvm.Address2; address.Line3 = hgvm.Address3 == null ? "" : hgvm.Address3; address.Line4 = hgvm.Address4 == null ? "" : hgvm.Address4; address.AddressType = hgvm.AddressType == null ? "" : hgvm.AddressType; address.Lat = hgvm.Lat == null ? 0 : hgvm.Lat; address.Long = hgvm.Lng == null ? 0 : hgvm.Lng; address.ChurchSuburbId = hgvm.SuburbId != 0 ? hgvm.SuburbId : (int?)null; address.Changed = DateTime.Now; if (hgvm.AddressId == 0) { context.Addresses.AddObject(address); } hg.Address = address; } hg.GroupClassificationId = hgvm.GroupClassificationId == 0 ? (int?)null : hgvm.GroupClassificationId; context.SaveChanges(); } } else { throw new ApplicationException("You do not have the required permission"); } }
public static void RemovePersonFromGroup(Person currentPerson, int groupId, int personId) { using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { if (currentPerson.HasPermission(Permissions.RemovePersonFromGroup)) { //Fetch the record var personToRemove = (from pg in context.PersonGroups where pg.PersonId == personId && pg.GroupId == groupId select pg).FirstOrDefault(); if (personToRemove != null) { //Remove them context.PersonGroups.DeleteObject(personToRemove); context.SaveChanges(); } } } }