本文整理匯總了C#中PurplePen.EventDB.RemoveSpecial方法的典型用法代碼示例。如果您正苦於以下問題:C# EventDB.RemoveSpecial方法的具體用法?C# EventDB.RemoveSpecial怎麽用?C# EventDB.RemoveSpecial使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類PurplePen.EventDB
的用法示例。
在下文中一共展示了EventDB.RemoveSpecial方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: UpdateDescriptionCourses
// Check all descriptions other than the passed one, and remove any duplicate courses.
public static void UpdateDescriptionCourses(EventDB eventDB, Id<Special> descriptionId)
{
// Which courses to remove?
CourseDesignator[] coursesToRemove = QueryEvent.GetSpecialDisplayedCourses(eventDB, descriptionId);
// Find all descriptions to change.
List<Id<Special>> allDescriptionIds = new List<Id<Special>>();
foreach (Id<Special> specialId in eventDB.AllSpecialIds) {
if (eventDB.GetSpecial(specialId).kind == SpecialKind.Descriptions && specialId != descriptionId)
allDescriptionIds.Add(specialId);
}
foreach (Id<Special> descriptionToChange in allDescriptionIds) {
// Remove any courses that overlap with the courses the given description has..
bool changes = false; // track if any changes made.
List<CourseDesignator> courses = new List<CourseDesignator>(QueryEvent.GetSpecialDisplayedCourses(eventDB, descriptionToChange));
for (int courseIndex = 0; courseIndex < courses.Count; ++courseIndex) {
foreach (CourseDesignator courseToRemove in coursesToRemove) {
if (courseIndex >= 0 && courseIndex < courses.Count) {
if (courseToRemove == courses[courseIndex]) {
changes = true;
courses.RemoveAt(courseIndex--);
}
else if (courseToRemove.CourseId == courses[courseIndex].CourseId) {
changes = true;
if (!courseToRemove.AllParts && courses[courseIndex].AllParts) {
int removedPart = courseToRemove.Part;
courses.RemoveAt(courseIndex--);
for (int part = 0; part < QueryEvent.CountCourseParts(eventDB, courseToRemove.CourseId); ++part) {
if (part != removedPart)
courses.Add(new CourseDesignator(courseToRemove.CourseId, part));
}
}
else if (courseToRemove.AllParts) {
courses.RemoveAt(courseIndex--);
}
}
}
}
}
// Commit the removal to the event database.
if (changes) {
if (courses.Count == 0) {
// Remove the given description entire, since it has no displayed courses.
eventDB.RemoveSpecial(descriptionToChange);
}
else {
Special newDescription = (Special) eventDB.GetSpecial(descriptionToChange).Clone();
newDescription.allCourses = false;
newDescription.courses = courses.ToArray();
eventDB.ReplaceSpecial(descriptionToChange, newDescription);
}
}
}
}
示例2: DeleteSpecial
// Delete a special
public static void DeleteSpecial(EventDB eventDB, Id<Special> specialId)
{
eventDB.RemoveSpecial(specialId);
}