Пример #1
0
        public override void InsertCategory(string category)
        {
            WikiDataContext db = new WikiDataContext(
                ConfigurationManager.ConnectionStrings[this.ConnectionStringName].ConnectionString);

            Table<WikiCategory> categories = db.GetTable<WikiCategory>();

            categories.InsertOnSubmit(new WikiCategory() { ApplicationName = this.ApplicationName, CategoryName = category });

            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;
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
            }
        }