/// <summary> /// Returns the Modul that matches with the given name and the highest current version of the editable Semester /// </summary> /// <param name="name">name of the modul</param> /// <returns>null if no modul with this name was found</returns> public Modul getModuleByNameAttendVersion(String name) { name = name.ToLower(); List <Modul> modules = new List <Modul>(); List <Modul> mod = getEditableModules(); Modul newest = new Modul() { Version = 0 }; for (int i = 0; i < mod.Count; i++) { bool reverse = false; for (int j = 0; j < mod[i].Descriptions.Count; j++) { ModulPartDescription mpd = mod[i].Descriptions.ToList()[j]; if (mpd.Name.Equals(GlobalNames.getModulNameText()) && mpd.Description.ToLower().Equals(name)) { if ((mod[i].Version > newest.Version) || newest.Version == 0) { newest = mod[i]; reverse = true; } } } if (reverse) { i = -1; } } return(newest); }
/// <summary> /// Saves the Modul with the given Modulstate und version number 1+n where n is the number, of the latest version /// </summary> /// <param name="state"></param> private void SaveChanges(ModulState state) { if (CheckDescriptions()) { int indexOfCurrentModulpunkt = GetCurrentIndex(); List <ModulPartDescription> modulpartdescriptions = GetModulpartDescriptions(); List <Subject> subjects = GetSubjects(); modulpartdescriptions[indexOfCurrentModulpunkt].Name = NameTextBox.Text; modulpartdescriptions[indexOfCurrentModulpunkt].Description = DescriptionTextBox.Text; if (!CommentTextBox.Text.Trim().Equals("")) { modulpartdescriptions[indexOfCurrentModulpunkt].Comment = CommentTextBox.Text; } var mu = System.Web.Security.Membership.GetUser(); Guid user = (Guid)mu.ProviderUserKey; Modul modul = GetModulByQuerystring(); ArchiveLogic al = new ArchiveLogic(); JobLogic jl = new JobLogic(); //create the new Modulpartdescriptions List <ModulPartDescription> mpdList = new List <ModulPartDescription>(); foreach (ModulPartDescription m in modulpartdescriptions) { ModulPartDescription toAdd = new ModulPartDescription() { IsNeeded = m.IsNeeded, Description = m.Description, Comment = m.Comment, Name = m.Name }; mpdList.Add(toAdd); } Modul newModule = al.CreateModul(mpdList, state, modul.Owner, user, DateTime.Now, subjects, modul.Version + 1); Session["Message"] = true; if (newModule != null) { CheckforMessage("Neue Version Erstellt!"); jl.CreateNewJob(state, mpdList, newModule, user); } else { CheckforMessage("Ein Fehler ist aufgetreten. Es wurde kein Modul erstellt!"); } } }
private bool DescriptionDone(ModulPartDescription mpd, String defaultText) { if (mpd.Description.Trim().Equals("")) { return(false); } if (mpd.Description.ToUpper().Trim() == defaultText.ToUpper().Trim()) { return(false); } if (mpd.Name.Equals("ECTS-Punkte") || mpd.Name.Equals("Semesterwochenstunden")) { String text = mpd.Description; double Num; bool isNum = double.TryParse(text, out Num); if (!isNum) { return(false); } } return(true); }