public void CreateLO(LearningObject lo)
 {
     try
     {
         database.GetCollection<LearningObject>("lo").InsertOneAsync(lo);
     }
     catch (Exception exception)
     {
         throw new Exception("Error during LO creating", exception);
     }
 }
 public LearningObject(LearningObject lo)
 {
     Id = lo.Id;
     Title = lo.Title;
     AuthorEmail = lo.AuthorEmail;
     Subject = lo.Subject;
     Description = lo.Description;
     Type = lo.Type;
     Source = lo.Source;
     Audience = lo.Audience;
     Language = lo.Language;
     Outcomes = lo.Outcomes;
     Prerequisites = lo.Prerequisites;
     CreationTime = lo.CreationTime;
     LastModifiedTime = lo.LastModifiedTime;
 }
 public object Clone()
 {
     LearningObject newLo = new LearningObject(this);
     return newLo;
 }
 public void EditLO(LearningObject lo)
 {
     try
     {
         database.GetCollection<LearningObject>("lo").ReplaceOneAsync(a => a.Id == lo.Id, lo);
     }
     catch (Exception exception)
     {
         throw new Exception("Error during LO editing", exception);
     }
 }