public WikiSerializable(IWorkWikiItem item) { if (item == null) throw new ArgumentNullException("item"); _item = item; _id = item.ID; _title = item.Title; _content = item.Content; }
private void BindWikiContent() { if (string.IsNullOrEmpty(Request.QueryString["trackingNumber"])) throw new InvalidOperationException("A valid identifier is requested."); wiki = WikiHistory.Load(new Guid(Request.QueryString["trackingNumber"])); if (wiki == null) return; Page.Title = string.Format("Wiki - {0}", wiki.Title); TitleLabel.Text = string.Format("{0} ({1})", wiki.Title, wiki.Status == WikiStatus.AuthorizationAccepted ? "Autorizado" : "Rechazado"); EditorLabel.Text = string.Format("Autor: {0}{1}", !string.IsNullOrEmpty(wiki.Editor) ? wiki.Editor : "ND", !string.IsNullOrEmpty(wiki.DepartmentArea) ? string.Format(" - {0}", wiki.DepartmentArea) : string.Empty); ContentLabel.Text = wiki.Content; BackButton.Visible = wiki.Editable || User.IsInRole("Administrator"); }
public override void RequestAuthorization(IWorkWikiItem item) { try { // Fill the parameters collection for this instance of the workflow Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("WikiID", item.ID); Type type = typeof(AuthorizeEntries); WorkflowInstance instance = theWorkflowRuntime.CreateWorkflow(type, parameters); item.Status = WikiStatus.Processing; item.TrackingNumber = instance.InstanceId; item.IPAddress = HttpContext.Current.Request.UserHostAddress; item.Save(); instance.Start(); } catch (Exception ex) { if (ex.Message.ToUpperInvariant().Contains("PRIMARY KEY")) throw new InvalidConstraintException("InsertWiki failed.", ex); else throw ex; } }
public abstract void AuthorizeWiki(IWorkWikiItem item);
public abstract void UpdateWorkWikiItem(IWorkWikiItem item);
public abstract void UpdateWikiHistory(IWorkWikiItem item);
public static void RequestAuthorization(IWorkWikiItem item) { _defaultProvider.RequestAuthorization(item); }
public override void RejectAuthorization(IWorkWikiItem item) { try { WorkflowInstance instance = theWorkflowRuntime.GetWorkflow(item.TrackingNumber); instance.Load(); item.Status = WikiStatus.Processing; item.Save(); theServiceProvider.RejectAuthorization(item.TrackingNumber, item.ID); } catch (Exception ex) { throw ex; } }
public abstract void InsertWikiHistory(IWorkWikiItem item);
public abstract void DeleteWorkWikiItem(IWorkWikiItem item);
public abstract void DeleteWikiHistory(IWorkWikiItem item);
public static void DeleteWorkWikiItem(IWorkWikiItem item) { _defaultProvider.DeleteWorkWikiItem(item); }
public static void AuthorizeWiki(IWorkWikiItem item) { _defaultProvider.AuthorizeWiki(item); }
public static void UpdateWorkWikiItem(IWorkWikiItem item) { _defaultProvider.UpdateWorkWikiItem(item); }
public override void DeleteWorkWikiItem(IWorkWikiItem item) { WikiDataContext db = new WikiDataContext( ConfigurationManager.ConnectionStrings[this.ConnectionStringName].ConnectionString); Table<LinqWorkWikiItem> wikis = db.GetTable<LinqWorkWikiItem>(); // BusinessBase inherited clases will have a downside effect with a ChangeConflictException // as it has changed LastUpdated row version in the call stack. IWiki wi = SelectWorkWikiItem(item.TrackingNumber); // BusinessBase inherited clases will have a downside effect with a ChangeConflictException // as it has changed LastUpdated row version in the call stack. LinqWorkWikiItem w = new LinqWorkWikiItem() { Action = (int)item.Action, ApplicationName = this.ApplicationName, Author = item.Author, Authorizer = item.Authorizer, Category = item.Category, Content = item.Content, DateCreated = item.DateCreated, DepartmentArea = item.DepartmentArea, Description = item.Description, Editable = item.Editable, Editor = item.Editor, ExpirationDate = item.ExpirationDate, ID = item.ID, IpAddress = item.IPAddress, IsVisible = item.IsVisible, Keywords = item.Keywords, LastUpdated = wi.LastUpdated, LastUpdatedBy = item.LastUpdatedBy, Messages = item.Messages, ReachLevel = (int)item.ReachLevel, Slug = item.Slug, Status = (int)item.Status, Title = item.Title, TrackingNumber = item.TrackingNumber }; // Assume that "wiki" has been sent by client. // Attach with "true" to the change tracker to consider the entity modified // and it can be checked for optimistic concurrency because // it has a column that is marked with "RowVersion" attribute wikis.Attach(w); wikis.DeleteOnSubmit(w); try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException ex) { Trace.TraceError(ex.Message); // All database values overwrite current values. foreach (ObjectChangeConflict occ in db.ChangeConflicts) occ.Resolve(RefreshMode.OverwriteCurrentValues); } catch (DbException ex) { Trace.TraceError(ex.Message); } }
public override void InsertWorkWikiItem(IWorkWikiItem item) { if (item == null) throw new ArgumentNullException("item"); WikiDataContext db = new WikiDataContext( ConfigurationManager.ConnectionStrings[this.ConnectionStringName].ConnectionString); Table<LinqWorkWikiItem> wikis = db.GetTable<LinqWorkWikiItem>(); wikis.InsertOnSubmit(new LinqWorkWikiItem() { Action = (int)item.Action, ApplicationName = this.ApplicationName, Author = item.Author, Authorizer = item.Authorizer, Category = item.Category, Content = item.Content, DateCreated = item.DateCreated, DepartmentArea = item.DepartmentArea, Description = item.Description, Editable = item.Editable, Editor = item.Editor, ExpirationDate = item.ExpirationDate, ID = item.ID, IpAddress = item.IPAddress, IsVisible = item.IsVisible, Keywords = item.Keywords, LastUpdated = item.LastUpdated, LastUpdatedBy = item.LastUpdatedBy, Messages = item.Messages, ReachLevel = (int)item.ReachLevel, Slug = item.Slug, Status = (int)item.Status, Title = item.Title, TrackingNumber = item.TrackingNumber }); try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException ex) { Trace.TraceWarning(ex.Message); // All database values overwrite current values. foreach (ObjectChangeConflict occ in db.ChangeConflicts) occ.Resolve(RefreshMode.OverwriteCurrentValues); } catch (DbException ex) { Trace.TraceError(ex.Message); return; } }
public abstract void InsertWorkWikiItem(IWorkWikiItem item);
public abstract void RequestAuthorization(IWorkWikiItem item);
public static void InsertWorkWikiItem(IWorkWikiItem item) { _defaultProvider.InsertWorkWikiItem(item); }