public Guid SaveTag(TagDTO tag) { Guid tagId = Guid.Empty; if (tag == null) throw new FaultException("Unable to save null tag."); TaskrDataContext db = new TaskrDataContext(ConfigurationProvider.GetConnection("Taskr")); if (tag.Id == Guid.Empty) { Tag _tag = tag.MapTo(); tagId = _tag.Id; db.Tags.InsertOnSubmit(_tag); } else { Tag _tag = db.Tags.SingleOrDefault(t => t.Id == tag.Id); tag.MapInto(_tag); tagId = _tag.Id; } db.SubmitChanges(); return tagId; }
/// <summary> /// This method handles the command event (callback) that initiates the save of a new tag. /// The method gets user input from the form on the page and attempts to save the tag through the admin service. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="CommandEventArgs"/> instance containing the event data.</param> protected void SaveTag(object sender, CommandEventArgs args) { if (String.IsNullOrEmpty(TagField.Text)) { return; } TagDTO tag = new TagDTO(); tag.Label = TagField.Text; using (TaskrAdminProxy service = new TaskrAdminProxy()) { try { service.SaveTag(tag); new StatusPresenter().Success(string.Format("Created {0} tag.", tag.Label)); BindTagList(); ResetForm(); } catch (FaultException<NotAuthorizedDetail> fault) { new StatusPresenter().Error(fault.Message); return; } catch (Exception exception) { if (logger.IsErrorEnabled) { logger.Error("An error occurred while saving a tag.", exception); } new StatusPresenter().Error("An unknown error occurred. Please try again."); return; } } }