public JsonResult _UpdateAgencyRolesF(AgencyRoleViewModel agencyroleviewmodel) { if (ModelState.IsValid) { // Need to remove agency level contacts from all clinics in agency - then add them back later // Check for Agency Level Role Type var rolelist = (from B in db.RoleBins select B).ToList(); var roletypelist = (from B in context.DDAgencyRoleTypeBins select B).ToList(); var rolecheck1 = (from x in rolelist join y in roletypelist on x.AgencyTypeRoleBinID equals y.AgencyRoleTypeBinID where x.RoleBinID == agencyroleviewmodel.AgencyRoleBinID select y.AgencyRoleTypeBinID).SingleOrDefault(); if (rolecheck1 == 5) { // Get Agency var agencyid1 = (from y in db.AgencySiteProgramSites where y.SiteID == agencyroleviewmodel.SiteID select y.AgencySiteID).First(); // Get List of Clinics //var cliniclist1 = (from y in db.AgencySiteProgramSites // where y.AgencySiteID == agencyid1 // select y).ToList(); var cliniclist1 = (from x in db.Sites join z in db.AgencySiteProgramSites on x.SiteID equals z.SiteID where x.Active == true && z.ProgramID == agencyroleviewmodel.ProgramID && z.AgencySiteID == agencyid1 select z).ToList(); foreach (AgencySiteProgramSites cas in cliniclist1) { // Remove all personnel var agencycontactlist = (from x in db.AgencyContactClinics where x.ClinicID == cas.SiteID && x.ProgramBinID == agencyroleviewmodel.ProgramID && x.AgencyRoleBinID == agencyroleviewmodel.AgencyRoleBinID //where x.ProgramBinID == agencyroleviewmodel.ProgramID && x.AgencyRoleBinID == agencyroleviewmodel.AgencyRoleBinID select x).ToList(); foreach (AgencyContactClinics acc in agencycontactlist) { db.AgencyContactClinics.Remove(acc); db.SaveChanges(); } } } else { // Remove all personnel var agencycontactlist = (from x in db.AgencyContactClinics where x.ClinicID == agencyroleviewmodel.SiteID && x.ProgramBinID == agencyroleviewmodel.ProgramID && x.AgencyRoleBinID == agencyroleviewmodel.AgencyRoleBinID //where x.ProgramBinID == agencyroleviewmodel.ProgramID && x.AgencyRoleBinID == agencyroleviewmodel.AgencyRoleBinID select x).ToList(); foreach (AgencyContactClinics acc in agencycontactlist) { db.AgencyContactClinics.Remove(acc); db.SaveChanges(); } } if (agencyroleviewmodel.UserList != null) { // Agency Contacts var stringToSplit = agencyroleviewmodel.UserList; var query = from val in stringToSplit.Split(',') select Convert.ToInt32(val); foreach (int val in query) { var rolecheck = (from x in rolelist join y in roletypelist on x.AgencyTypeRoleBinID equals y.AgencyRoleTypeBinID where x.RoleBinID == agencyroleviewmodel.AgencyRoleBinID select y.AgencyRoleTypeBinID).SingleOrDefault(); if (rolecheck == 5) { // Loop through clinics and add agency level contacts to all clinics // Get Agency var agencyid = (from y in db.AgencySiteProgramSites where y.SiteID == agencyroleviewmodel.SiteID select y.AgencySiteID).First(); // Get List of Clinics //var cliniclist = (from y in db.AgencySiteProgramSites // where y.AgencySiteID == agencyid // select y).ToList(); var cliniclist = (from x in db.Sites join z in db.AgencySiteProgramSites on x.SiteID equals z.SiteID where x.Active == true && z.ProgramID == agencyroleviewmodel.ProgramID && z.AgencySiteID == agencyid select z).ToList(); foreach (AgencySiteProgramSites cas in cliniclist) { var arout = (from x in db.AgencyContacts where x.AgencyContactID == val select x.AgencyContactID).FirstOrDefault(); AgencyContactClinics accl = new AgencyContactClinics { AgencyContactID = arout, ClinicID = cas.SiteID, ProgramBinID = Convert.ToInt32(agencyroleviewmodel.ProgramID), AgencyRoleBinID = Convert.ToInt32(agencyroleviewmodel.AgencyRoleBinID) }; db.AgencyContactClinics.Add(accl); db.SaveChanges(); } } else { var arout = (from x in db.AgencyContacts where x.AgencyContactID == val select x.AgencyContactID).FirstOrDefault(); AgencyContactClinics accl = new AgencyContactClinics { AgencyContactID = arout, ClinicID = Convert.ToInt32(agencyroleviewmodel.SiteID), ProgramBinID = Convert.ToInt32(agencyroleviewmodel.ProgramID), AgencyRoleBinID = Convert.ToInt32(agencyroleviewmodel.AgencyRoleBinID) }; db.AgencyContactClinics.Add(accl); db.SaveChanges(); } } } return(Json(new { Status = "Success", Modified = agencyroleviewmodel.SiteID }, JsonRequestBehavior.AllowGet)); } return(Json(new { Status = "Success", Modified = agencyroleviewmodel.SiteID }, JsonRequestBehavior.AllowGet)); }
public JsonResult _AddAgencyContactF(AgencyContactViewModel agencycontactviewmodel) { if (ModelState.IsValid) { // Set Record Info string UserNameInit = @User.Identity.Name.ToString(); DateTime CreatedInit = DateTime.Now; var userid = (from x in db.AspNetUsers where x.UserName == UserNameInit select x).FirstOrDefault(); if (agencycontactviewmodel.AgencyContactID != null) { // Update Contact AgencyContact agcontact = db.AgencyContacts.Single(x => x.AgencyContactID == agencycontactviewmodel.AgencyContactID); agcontact.FirstName = agencycontactviewmodel.FirstName; agcontact.LastName = agencycontactviewmodel.LastName; agcontact.Title = agencycontactviewmodel.Title; agcontact.Phone = agencycontactviewmodel.Phone; agcontact.Fax = agencycontactviewmodel.Fax; agcontact.Email = agencycontactviewmodel.Email; agcontact.MITrainingDate = agencycontactviewmodel.MITrainingDate; agcontact.DateUpdated = CreatedInit; agcontact.UpdatedBy = UserNameInit; db.SaveChanges(); return(Json(new { Status = "Success", Modified = agencycontactviewmodel.AgencyContactID }, JsonRequestBehavior.AllowGet)); } else { // Create Agency Contact AgencyContact ac = new AgencyContact { FirstName = agencycontactviewmodel.FirstName, LastName = agencycontactviewmodel.LastName, Title = agencycontactviewmodel.Title, Phone = agencycontactviewmodel.Phone, Fax = agencycontactviewmodel.Fax, Email = agencycontactviewmodel.Email, Active = true, MITrainingDate = agencycontactviewmodel.MITrainingDate, DateCreated = CreatedInit, CreatedBy = UserNameInit, DateUpdated = CreatedInit, UpdatedBy = UserNameInit }; try { db.AgencyContacts.Add(ac); db.SaveChanges(); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Debug.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } // Agency Contact ID var ACID = ac.AgencyContactID; // If Agency Wide Role, Get list of all sites for agency and add to them if (agencycontactviewmodel.AgencyRoleTypeBinID == 5) { // get agency id var agencyid = (from x in db.AgencySiteProgramSites where x.SiteID == agencycontactviewmodel.SiteID select x.AgencySiteID).First(); // get list of all sites for this agency //var sitelist = (from x in db.AgencySiteProgramSites // where x.ProgramID == agencycontactviewmodel.ProgramBinID && x.AgencySiteID == agencyid // select x.SiteID).ToList(); var sitelist = (from x in db.Sites join z in db.AgencySiteProgramSites on x.SiteID equals z.SiteID where x.Active == true && z.ProgramID == agencycontactviewmodel.ProgramBinID && z.AgencySiteID == agencyid select x.SiteID).ToList(); foreach (int val in sitelist) { if (agencycontactviewmodel.AgencyRoleName != null) { // Roles var stringToSplitA = agencycontactviewmodel.AgencyRoleName; var queryA = from valA in stringToSplitA.Split(',') select Convert.ToInt32(valA); foreach (int valA in queryA) { // Add to AgencyContactClinics AgencyContactClinics agencycontactclinics = new AgencyContactClinics { AgencyContactID = ACID, ClinicID = val, // AgencyRoleBinID = Convert.ToInt32(agencycontactviewmodel.AgencyRoleBinID), AgencyRoleBinID = valA, ProgramBinID = Convert.ToInt32(agencycontactviewmodel.ProgramBinID) }; db.AgencyContactClinics.Add(agencycontactclinics); db.SaveChanges(); } } } } else { if (agencycontactviewmodel.SiteName != null) { // Sites var stringToSplit = agencycontactviewmodel.SiteName; var query = from val in stringToSplit.Split(',') select Convert.ToInt32(val); foreach (int val in query) { // Add to AgencyContactClinics AgencyContactClinics agencycontactclinics = new AgencyContactClinics { AgencyContactID = ACID, ClinicID = val, AgencyRoleBinID = Convert.ToInt32(agencycontactviewmodel.AgencyRoleBinID), ProgramBinID = Convert.ToInt32(agencycontactviewmodel.ProgramBinID) }; db.AgencyContactClinics.Add(agencycontactclinics); db.SaveChanges(); } } } return(Json(new { Status = "Success", Modified = ACID }, JsonRequestBehavior.AllowGet)); } } return(Json(new { Status = "Success" }, JsonRequestBehavior.AllowGet)); }