public int AddResearcherAvailability(int researcherId, DateTime startDate, DateTime endDate) { using (ScheduleExEntities ctx = new ScheduleExEntities()) { DataAccess.ResearcherAvailability ra = new DataAccess.ResearcherAvailability(); ra.ResearcherId = researcherId; ra.StartDate = startDate; ra.EndDate = endDate; ctx.ResearcherAvailabilities.Add(ra); ctx.SaveChanges(); return(ra.AvailabilityId); } }
public bool DeleteResearcherAvailability(int availabilityId) { using (ScheduleExEntities ctx = new ScheduleExEntities()) { DataAccess.ResearcherAvailability ra = ctx.ResearcherAvailabilities.FirstOrDefault(r => r.AvailabilityId == availabilityId); if (ra == null) { return(false); } else { ctx.ResearcherAvailabilities.Remove(ra); ctx.SaveChanges(); return(true); } } }
public bool UpdateResearcherAvailability(int availabilityId, DateTime startDate, DateTime endDate) { using (ScheduleExEntities ctx = new ScheduleExEntities()) { DataAccess.ResearcherAvailability ra = ctx.ResearcherAvailabilities.FirstOrDefault(r => r.AvailabilityId == availabilityId); if (ra == null) { return(false); } else { ra.StartDate = startDate; ra.EndDate = endDate; return(true); } } }
public int RegisterUser(string firstName, string lastName, string email, string hashPwd, string city, string state, long phonenumber, string expertiseIdsStr, string organization, string almaMater, string availableMonthsStr) { try { using (DataAccess.ScheduleExEntities ctx = new DataAccess.ScheduleExEntities()) { if (ctx.Users.Any(u => u.Email.Equals(email, StringComparison.InvariantCultureIgnoreCase))) { throw new Exception(string.Format("Email '{0}' already exists.", email)); } DataAccess.User newUser = new DataAccess.User(); newUser.FirstName = firstName; newUser.LastName = lastName; newUser.Email = email; newUser.HashPwd = hashPwd; newUser.City = city; newUser.State = state; newUser.RoleId = ctx.Roles.First(r => r.RoleName.Equals("Researcher", StringComparison.InvariantCultureIgnoreCase)).RoleId; newUser.PhoneNumber = phonenumber; newUser.Organization = organization; newUser.AlmaMater = almaMater; ctx.Users.Add(newUser); ctx.SaveChanges(); List <int> expertiseIds = expertiseIdsStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList().ConvertAll(int.Parse); foreach (int expertiseId in expertiseIds) { DataAccess.ResearcherExpertis expertise = new DataAccess.ResearcherExpertis(); expertise.ExpertiseId = expertiseId; expertise.ResearcherId = newUser.UserId; ctx.ResearcherExpertises.Add(expertise); } List <int> availableMonths = availableMonthsStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList().ConvertAll(int.Parse); foreach (int availableMonth in availableMonths) { DataAccess.ResearcherAvailability availability = new DataAccess.ResearcherAvailability(); availability.Month = availableMonth; availability.ResearcherId = newUser.UserId; ctx.ResearcherAvailabilities.Add(availability); } ctx.SaveChanges(); return(newUser.UserId); } } catch (DbEntityValidationException e) { string error = string.Empty; foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); error += ve.ErrorMessage; } } throw new Exception("Validation Failed." + error); } catch (System.Data.Entity.Infrastructure.DbUpdateException ue) { throw; } }