Пример #1
0
        public override IContext CreateContext(string contextName, ContextSchema schema)
        {
            if (string.IsNullOrEmpty(contextName))
            {
                throw new ArgumentNullException("contextName");
            }
            if (schema == null)
            {
                throw new ArgumentNullException("schema");
            }

            IContext context;

            lock (padlock) {
                if (ContextsContains(contextName))
                {
                    throw new ContextAlreadyExistsException("A context with the name [" + contextName + "] already exists.");
                }
                using (var transaction = TransactionFactory.BeginTransaction(CurrentDB)) {
                    CurrentDB.ExecuteNonQuery("dbo.USER_CreateContext",
                                              transaction,
                                              CurrentDB.CreateStringInputParameter("@chvContext", DbType.AnsiString, contextName));
                    foreach (var s in schema)
                    {
                        AddSchemaToContext(s, contextName, transaction);
                    }
                    context = new Context(contextName);
                    transaction.Commit();
                }

                contexts.Add(context);
            }

            return(context);
        }
Пример #2
0
        /// <summary>
        /// 物理删除笔记
        /// </summary>
        /// <param name="noteId"></param>
        public void RemoveNoteFinal(int noteId)
        {
            var note = GetMyNote(noteId);

            CurrentDB.OneNoteTable.Remove(note);
            CurrentDB.SaveChanges();
        }
Пример #3
0
        public void Delete(int planId)
        {
            var plan = CurrentDB.DayPlanTable.Find(planId);

            CurrentDB.DayPlanTable.Remove(plan);
            CurrentDB.SaveChanges();
        }
Пример #4
0
 public override IEnumerable <IContext> GetContexts()
 {
     if (contexts != null)
     {
         return(contexts);
     }
     lock (padlock) {
         if (contexts == null)
         {
             var contextCollection = new List <IContext>();
             var dsFunction        = CurrentDB.ExecuteDataSet("dbo.USER_GetContexts");
             if (dsFunction.Tables.Count > 0)
             {
                 foreach (DataRow row in dsFunction.Tables[0].Rows)
                 {
                     var      contextName = (string)row["ContextName"];
                     IContext uc          = new Context(contextName);
                     contextCollection.Add(uc);
                 }
             }
             contexts = contextCollection;
         }
     }
     return(contexts);
 }
Пример #5
0
        /// <summary>
        /// 是否将上传了附件笔记
        /// </summary>
        /// <param name="noteId"></param>
        public void CreateAttachment(int noteId)
        {
            var note = CurrentDB.OneNoteTable.Find(noteId);

            note.WithAttach = true;
            CurrentDB.SaveChanges();
        }
Пример #6
0
        /// <summary>
        /// 更新笔记本
        /// </summary>
        /// <param name="bookId"></param>
        /// <param name="bookName"></param>
        /// <returns></returns>
        public NoteBook UpdateNoteBook(int bookId, string bookName)
        {
            var notebook = GetMyBook(bookId);

            notebook.BookName = bookName;
            CurrentDB.SaveChanges();
            return(notebook);
        }
Пример #7
0
        public DayPlan Update(int planId, string content, DateTime endAt)
        {
            var plan = CurrentDB.DayPlanTable.Find(planId);

            plan.Content  = content;
            plan.CreateAt = endAt;
            CurrentDB.SaveChanges();
            return(plan);
        }
Пример #8
0
        /// <summary>
        /// 增加一条笔记
        /// </summary>
        /// <param name="note"></param>
        /// <returns></returns>
        public OneNote CreateNote(NewNote note)
        {
            var oneNote = (OneNote)note;

            oneNote.UserId = CurrentPrincipal.UserId;
            CurrentDB.OneNoteTable.Add(oneNote);
            CurrentDB.SaveChanges();
            return(note);
        }
Пример #9
0
 public override void DeleteUser(IUser user)
 {
     if (user == null)
     {
         throw new ArgumentNullException("user");
     }
     UserCache.RemoveUserFromCache(user);
     CurrentDB.ExecuteNonQuery("dbo.USER_Delete",
                               CurrentDB.CreateInputParameter("@guidUserID", DbType.Guid, new Guid(user.Id)));
 }
Пример #10
0
 protected virtual void AddSchemaToContext(PropertyDefinition definition, string contextName, ITransaction transaction)
 {
     CurrentDB.ExecuteNonQuery("dbo.USER_AddContextualPropertySchema",
                               transaction,
                               CurrentDB.CreateStringInputParameter("@chvContext", DbType.AnsiString, contextName, true),
                               CurrentDB.CreateStringInputParameter("@chvPropertyName",
                                                                    DbType.AnsiString,
                                                                    definition.PropertyName,
                                                                    true));
 }
Пример #11
0
        public bool ToggleShareIt(int noteId)
        {
            var note = GetMyNote(noteId);

            if (note != null)
            {
                note.ShareOrNot = !note.ShareOrNot;
                CurrentDB.SaveChanges();
                return(note.ShareOrNot);
            }
            return(false);
        }
Пример #12
0
        public bool ToggleShareOrNot(int planId)
        {
            var plan = CreateMyQuery().FirstOrDefault(o => o.Id == planId);

            if (plan != null)
            {
                plan.ShareOrNot = !plan.ShareOrNot;
                CurrentDB.SaveChanges();
                return(plan.ShareOrNot);
            }
            return(false);
        }
Пример #13
0
        /// <summary>
        /// 修改1条笔记
        /// </summary>
        /// <param name="noteId"></param>
        /// <param name="oneNote"></param>
        /// <returns></returns>
        public OneNote UpdateNote(NoteUpdating noteUpdating)
        {
            var oneNote = GetMyNote(noteUpdating.NoteId);

            if (oneNote == null)
            {
                throw new ArgumentException("笔记未找到");
            }
            noteUpdating.Merge(oneNote).UpdateAt = DateTime.Now;
            CurrentDB.SaveChanges();
            return(oneNote);
        }
Пример #14
0
        public bool DeletePlan(int planId)
        {
            var plan = CreateMyQuery().FirstOrDefault(o => o.Id == planId);

            if (plan == null)
            {
                return(false);
            }

            CurrentDB.DayPlanTable.Remove(plan);
            CurrentDB.SaveChanges();
            return(true);
        }
Пример #15
0
        public bool ToggleCompleted(int planId)
        {
            var plan = CreateMyQuery().FirstOrDefault(o => o.Id == planId);

            if (plan != null)
            {
                plan.IsCompleted = !plan.IsCompleted;
                plan.CompletedAt = plan.IsCompleted ? new DateTime?(DateTime.Now) : null;
                CurrentDB.SaveChanges();
                return(plan.IsCompleted);
            }
            return(false);
        }
Пример #16
0
        /// <summary>
        /// 撤销删除的笔记
        /// </summary>
        /// <param name="noteId"></param>
        /// <returns></returns>

        public bool RecoveryNote(int noteId)
        {
            var onenote = GetMyNote(noteId, true);

            if (onenote == null)
            {
                return(false);
            }

            onenote.IsDeleted = false;
            CurrentDB.SaveChanges();
            return(!onenote.IsDeleted);
        }
Пример #17
0
        public DayPlan Create(PlanType type, long UserId, DateTime StartAt)
        {
            DayPlan dayplan = new DayPlan()
            {
                UserId   = CurrentPrincipal.UserId,
                CreateAt = DateTime.Now,
                UpdateAt = DateTime.Now
            };

            CurrentDB.DayPlanTable.Add(dayplan);
            CurrentDB.SaveChanges();
            return(dayplan);
        }
Пример #18
0
        private ShareList CreateShareList(int?noteId = null, int?planId = null)
        {
            var shareInfo = CurrentDB.ShareTable.Add(new ShareList()
            {
                UserId  = AuthorizationContext.CurrentPrincipal.UserId,
                ShareAt = DateTime.Now,
                PlanId  = planId,
                NoteId  = noteId
            });

            CurrentDB.SaveChanges();
            return(shareInfo);
        }
Пример #19
0
        public DayPlan UpdatePlan(PlanUpdateInput updating)
        {
            var plan = CreateMyQuery().FirstOrDefault(o => o.Id == updating.PlanId);

            if (plan == null)
            {
                return(null);
            }

            plan = updating.UpdateTo(plan);
            CurrentDB.SaveChanges();
            return(plan);
        }
Пример #20
0
        /// <summary>
        /// 删除笔记本
        /// </summary>
        /// <param name="bookId"></param>
        public void RemoveNoteBook(int bookId)  // OK
        {
            var notebook = GetMyBook(bookId);

            if (notebook != null)
            {
                var notes = CurrentDB.OneNoteTable.Where(o => o.BookId == bookId);
                CurrentDB.OneNoteTable.RemoveRange(notes);

                CurrentDB.NoteBookTable.Remove(notebook);

                CurrentDB.SaveChanges();
            }
        }
Пример #21
0
        public DayOne.Entities.DayPlan CreatePlan(PlanInput planInput)
        {
            if (planInput == null)
            {
                throw new ArgumentNullException("planInput");
            }

            DayPlan dayplan = planInput;

            dayplan.UserId = this.CurrentPrincipal.UserId;

            dayplan = CurrentDB.DayPlanTable.Add(dayplan);
            CurrentDB.SaveChanges();
            return(dayplan);
        }
Пример #22
0
        public override string[] GetDomains()
        {
            var dsDomains = CurrentDB.ExecuteDataSet("dbo.USER_GetDomains");

            if (dsDomains.Tables.Count == 1 && dsDomains.Tables[0].Rows.Count > 0)
            {
                var result = new string[dsDomains.Tables[0].Rows.Count];
                for (var i = 0; i < result.Length; i++)
                {
                    result[i] = dsDomains.Tables[0].Rows[i]["Domain"].ToString();
                }
                return(result);
            }
            return(new string[0]);
        }
Пример #23
0
        public override IUser GetUserById(string userId)
        {
            var user = UserCache.GetUserById(userId);

            if (user != null)
            {
                return(user);
            }

            var dsUser = CurrentDB.ExecuteDataSet("dbo.USER_GetByID",
                                                  CurrentDB.CreateInputParameter("@guidUserID", DbType.Guid, new Guid(userId)));

            user = GetUserFromDataSet(dsUser);
            UserCache.AddUserToCache(user);
            return(user);
        }
Пример #24
0
 public override void DeleteContext(IContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     lock (padlock) {
         using (var transaction = TransactionFactory.BeginTransaction(CurrentDB)) {
             CurrentDB.ExecuteNonQuery("dbo.USER_DeleteContext",
                                       transaction,
                                       CurrentDB.CreateStringInputParameter("@chvContext", DbType.AnsiString, context.Name, true));
             transaction.Commit();
         }
         contexts.Remove(context);
     }
 }
Пример #25
0
        public override IList <IUser> GetUsersByDomain(string domain)
        {
            if (domain == null)
            {
                domain = string.Empty;
            }
            var dsUser = CurrentDB.ExecuteDataSet("dbo.USER_GetUsersByDomain",
                                                  CurrentDB.CreateStringInputParameter("@chvDomain",
                                                                                       DbType.AnsiString,
                                                                                       domain,
                                                                                       false));
            var uc = GetUsersFromDataSet(dsUser);

            UserCache.AddUsersToCache(uc);
            return(uc);
        }
Пример #26
0
        public UserInfo ChangePassword(string newpw)
        {
            if (string.IsNullOrWhiteSpace(newpw))
            {
                return(null);
            }

            var userInfo = CurrentDB.UserTable.Find(CurrentPrincipal.UserId);

            if (userInfo == null)
            {
                return(null);
            }

            userInfo.PassWord = newpw;
            CurrentDB.SaveChanges();
            return(null);
        }
Пример #27
0
        protected virtual void SaveProperty(IUser user, IProperty property, ITransaction transaction)
        {
            var propertyValue = string.Empty;

            if (!property.IsEmpty())
            {
                propertyValue = property.ToSerializedString();
            }

            if (propertyValue.Length > 0)
            {
                CurrentDB.ExecuteNonQuery("dbo.USER_UpdateProperty",
                                          transaction,
                                          CurrentDB.CreateInputParameter("@guidUserId", DbType.Guid, new Guid(user.Id)),
                                          CurrentDB.CreateStringInputParameter("@chvProperty", DbType.AnsiString, property.Name),
                                          CurrentDB.CreateStringInputParameter("@chvnPropertyValue",
                                                                               DbType.String,
                                                                               propertyValue.Length <= 4000 ? propertyValue : null),
                                          CurrentDB.CreateStringInputParameter("@txtnExtPropertyValue",
                                                                               DbType.String,
                                                                               propertyValue.Length > 4000 ? propertyValue : null),
                                          CurrentDB.CreateStringInputParameter("@chvContext",
                                                                               DbType.AnsiString,
                                                                               property.Context == null ||
                                                                               string.IsNullOrEmpty(property.Context.Name)
                                                                                                       ? null
                                                                                                       : property.Context.Name));
            }
            else
            {
                CurrentDB.ExecuteNonQuery("dbo.USER_DeleteProperty",
                                          transaction,
                                          CurrentDB.CreateInputParameter("@guidUserId", DbType.Guid, new Guid(user.Id)),
                                          CurrentDB.CreateStringInputParameter("@chvPropertyName", DbType.AnsiString, property.Name),
                                          CurrentDB.CreateStringInputParameter("@chvContextName",
                                                                               DbType.AnsiString,
                                                                               property.Context == null ||
                                                                               string.IsNullOrEmpty(property.Context.Name)
                                                                                                       ? null
                                                                                                       : property.Context.Name));
            }

            property.IsDirty = false;
        }
Пример #28
0
        /// <summary>
        /// 逻辑删除 放到回收站
        /// </summary>
        /// <param name="noteId"></param>
        public void RemoveNote2(int noteId, bool destroy = false)
        {
            var onenote = GetMyNote(noteId, true);

            if (onenote == null)
            {
                return;
            }

            if (destroy)
            {
                CurrentDB.OneNoteTable.Remove(onenote);
            }
            else
            {
                onenote.IsDeleted = true;
            }
            CurrentDB.SaveChanges();
        }
Пример #29
0
        /// <summary>
        /// 增加笔记本
        /// </summary>
        /// <param name="bookName"></param>
        /// <param name="bookId"></param>
        /// <returns></returns>
        public NoteBook AddNoteBook(string bookName)  // OK
        {
            if (string.IsNullOrWhiteSpace(bookName))
            {
                throw new ArgumentNullException("bookName");
            }

            NoteBook notebook = new NoteBook()
            {
                UserId     = CurrentPrincipal.UserId,
                CreateAt   = DateTime.Now,
                BookName   = bookName,
                ShareOrNot = false,
            };

            CurrentDB.NoteBookTable.Add(notebook);
            CurrentDB.SaveChanges();
            return(notebook);
        }
Пример #30
0
        public override IUser GetUserByUserName(string userName, string domain)
        {
            var user = UserCache.GetUserByUserName(userName, domain);

            if (user != null)
            {
                return(user);
            }
            var dsUser = CurrentDB.ExecuteDataSet("dbo.USER_GetByUsername",
                                                  CurrentDB.CreateStringInputParameter("@chvnUsername",
                                                                                       DbType.String,
                                                                                       userName),
                                                  CurrentDB.CreateStringInputParameter("@chvDomain",
                                                                                       DbType.AnsiString,
                                                                                       domain ?? string.Empty));

            user = GetUserFromDataSet(dsUser);
            UserCache.AddUserToCache(user);
            return(user);
        }