public ActionResult CreateEvent(CourseCreateModelExtended model) { Init(null); var user = GetCurrentUser(); var org = _union; var @event = new Event { Name = model.Name, ShortName = model.ShortName, Description = model.Description, Organiser = org, Occurrence = new Occurrence { Capacity = -1, IsAvailable = true, FromIsRestricted = false, UntilIsRestricted = false, IsCanceled = false, IsMoved = false, UseGroups = false, }, }; if (model.GroupIds != null) { foreach (var groupId in model.GroupIds) { var semGroup = Db.SemesterGroups.SingleOrDefault(g => g.Id == groupId); if (semGroup != null) { @event.SemesterGroups.Add(semGroup); var occGroup = new OccurrenceGroup { Capacity = 0, FitToCurriculumOnly = true, Occurrence = @event.Occurrence }; occGroup.SemesterGroups.Add(semGroup); semGroup.OccurrenceGroups.Add(occGroup); @event.Occurrence.Groups.Add(occGroup); Db.OccurrenceGroups.Add(occGroup); } } } /* * var member = GetMember(user.UserName, _union.ShortName); * * if (member != null) * { * // das Objeklt muss aus dem gleichen Kontext kommen * var me = Db.Members.SingleOrDefault(m => m.Id == member.Id); * * ActivityOwner owner = new ActivityOwner * { * Activity = @event, * Member = me, * IsLocked = false * }; * * @event.Owners.Add(owner); * Db.ActivityOwners.Add(owner); * }*/ var dozList = new List <OrganiserMember>(); if (model.DozIds != null) { dozList.AddRange(model.DozIds.Select(dozId => Db.Members.SingleOrDefault(g => g.Id == dozId)).Where(doz => doz != null)); } var roomList = new List <Room>(); if (model.RoomIds != null) { roomList.AddRange(model.RoomIds.Select(roomId => Db.Rooms.SingleOrDefault(g => g.Id == roomId)).Where(doz => doz != null)); } // Termine anelegen var semesterService = new SemesterService(); if (model.Dates != null) { foreach (var date in model.Dates) { string[] elems = date.Split('#'); var day = DateTime.Parse(elems[0]); var begin = TimeSpan.Parse(elems[1]); var end = TimeSpan.Parse(elems[2]); var isWdh = bool.Parse(elems[3]); ICollection <DateTime> dayList; var semester = semesterService.GetSemester(day); if (isWdh && semester != null) { dayList = semesterService.GetDays(semester.Id, day); } else { dayList = new List <DateTime> { day }; } foreach (var dateDay in dayList) { var activityDate = new ActivityDate { Activity = @event, Begin = dateDay.Add(begin), End = dateDay.Add(end), Occurrence = new Occurrence { Capacity = -1, IsAvailable = true, FromIsRestricted = false, UntilIsRestricted = false, IsCanceled = false, IsMoved = false, UseGroups = false, }, }; foreach (var room in roomList) { activityDate.Rooms.Add(room); } foreach (var doz in dozList) { activityDate.Hosts.Add(doz); } Db.ActivityDates.Add(activityDate); } } } Db.Activities.Add(@event); Db.SaveChanges(); return(PartialView("_CreateEventSuccess", @event)); }
public ActionResult CreateThesis(CourseCreateModelExtended model) { var org = GetMyOrganisation(); var semester = SemesterService.GetSemester(model.SemesterId); var course = new Exam { Name = model.Name, ShortName = model.ShortName, Organiser = org, Occurrence = new Occurrence { Capacity = -1, IsAvailable = true, FromIsRestricted = false, UntilIsRestricted = false, IsCanceled = false, IsMoved = false, UseGroups = false, }, }; // da kommen Kapazitätsgruppen // d.h. Semestergruppe suchen und ggf. anlegen if (model.GroupIds != null) { foreach (var groupId in model.GroupIds) { var capGroup = Db.CapacityGroups.SingleOrDefault(g => g.Id == groupId); var semGroup = Db.SemesterGroups.SingleOrDefault( g => g.Semester.Id == semester.Id && g.CapacityGroup.Id == groupId); // die Semestergruppe gibt es nicht => anlegen if (semGroup == null) { semGroup = new SemesterGroup { CapacityGroup = capGroup, Semester = semester, IsAvailable = false, }; Db.SemesterGroups.Add(semGroup); } course.SemesterGroups.Add(semGroup); var occGroup = new OccurrenceGroup { Capacity = 0, FitToCurriculumOnly = true, Occurrence = course.Occurrence }; occGroup.SemesterGroups.Add(semGroup); semGroup.OccurrenceGroups.Add(occGroup); course.Occurrence.Groups.Add(occGroup); Db.OccurrenceGroups.Add(occGroup); } } var member = GetMyMembership(); if (member != null) { // das Objeklt muss aus dem gleichen Kontext kommen var me = Db.Members.SingleOrDefault(m => m.Id == member.Id); ActivityOwner owner = new ActivityOwner { Activity = course, Member = me, IsLocked = false }; course.Owners.Add(owner); Db.ActivityOwners.Add(owner); } Db.Activities.Add(course); Db.SaveChanges(); return(PartialView("_CreateThesisSuccess", course)); }