public IsSuccessResult UpgrateToAdmin(int id) { var log = GetLogger(); var user = NiHonGoContext.Users.SingleOrDefault(r => r.Id == id); if (user == null) { return(new IsSuccessResult(ErrorCode.UserNotFound.ToString())); } if (user.Type == (int)UserType.User) { user.Type = (int)UserType.Admin; } try { NiHonGoContext.SaveChanges(); return(new IsSuccessResult()); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult(ErrorCode.InternalError.ToString())); } }
public void DBDataInit() { NiHonGoContext.Levels.Add(new Level { Display = "無經驗" }); NiHonGoContext.Levels.Add(new Level { Display = "初學者" }); NiHonGoContext.Levels.Add(new Level { Display = "日檢5級" }); NiHonGoContext.Levels.Add(new Level { Display = "日檢4級" }); NiHonGoContext.Levels.Add(new Level { Display = "日檢3級" }); NiHonGoContext.Levels.Add(new Level { Display = "日檢2級" }); NiHonGoContext.Levels.Add(new Level { Display = "日檢1級" }); NiHonGoContext.Levels.Add(new Level { Display = "商用程度" }); NiHonGoContext.SaveChanges(); }
public IsSuccessResult ChangePassword(int id, string oldPassword, string newPassword) { var log = GetLogger(); #region check parameter if (string.IsNullOrWhiteSpace(oldPassword)) { return(new IsSuccessResult(ErrorCode.OldPasswordIsNull.ToString())); } oldPassword = oldPassword.Trim(); if (string.IsNullOrWhiteSpace(newPassword)) { return(new IsSuccessResult(ErrorCode.NewPasswordIsNull.ToString())); } newPassword = newPassword.Trim(); // get user var user = NiHonGoContext.Users .SingleOrDefault(r => r.Id == id); // user not found if (user == null) { return(new IsSuccessResult(ErrorCode.UserNotFound.ToString())); } // check old password if (user.Password != Cryptography.EncryptBySHA1(oldPassword)) { return(new IsSuccessResult(ErrorCode.OldPasswordWrong.ToString())); } // old pwd and new pwd is the same if (oldPassword == newPassword) { return(new IsSuccessResult()); } #endregion // check parameter try { user.Password = Cryptography.EncryptBySHA1(newPassword); NiHonGoContext.SaveChanges(); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult(ErrorCode.ChangePasswordFailed.ToString())); } return(new IsSuccessResult()); }
/// <summary> /// add admin if no user in db /// </summary> public void HasAnyUser() { var isAny = NiHonGoContext.Users.Any(); if (isAny == false) { NiHonGoContext.Users.Add(new User { Email = Constant.DefaultAdminEmail, Password = Cryptography.EncryptBySHA1(Constant.DefaultPassword), Name = "管理員", CreateDateTime = DateTime.UtcNow }); NiHonGoContext.SaveChanges(); new SystemLogic().DBDataInit(); } }
public IsSuccessResult UpdatePhoto(int blogId, string photo) { var log = GetLogger(); log.Debug("BlogId: {0}, Photo: {1}" , blogId, photo); var blog = NiHonGoContext.Blogs .SingleOrDefault(r => r.Id == blogId); if (blog == null) { return(new IsSuccessResult(ErrorCode.BlogNotFound.ToString())); } if (string.IsNullOrWhiteSpace(photo)) { return(new IsSuccessResult(ErrorCode.PhotoIsNull.ToString())); } if (Regex.IsMatch(photo, Constant.PatternImage, RegexOptions.IgnoreCase) == false) { return(new IsSuccessResult(ErrorCode.PhotoFormatIsWrong.ToString())); } try { blog.Photo = photo; NiHonGoContext.SaveChanges(); return(new IsSuccessResult()); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult(ErrorCode.InternalError.ToString())); } }
public IsSuccessResult <int> Edit(EditBlog data, int userId, int?blogId) { var log = GetLogger(); log.Debug("Title: {0}, Detail: {1}, Tag: {2}, UserId: {3}, BlogId: {4}, Catalog: {5}" , data.Title, data.Detail, data.Tag, userId, blogId, data.Catalog); var user = NiHonGoContext.Users .SingleOrDefault(r => r.Id == userId); if (user == null) { return(new IsSuccessResult <int>(ErrorCode.UserNotFound.ToString())); } if ((UserType)user.Type != UserType.Admin) { return(new IsSuccessResult <int>(ErrorCode.NoAuthentication.ToString())); } if (string.IsNullOrWhiteSpace(data.Title)) { return(new IsSuccessResult <int>(ErrorCode.BlogTitleIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.Detail)) { return(new IsSuccessResult <int>(ErrorCode.BlogDetailIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.Catalog)) { return(new IsSuccessResult <int>(ErrorCode.CatalogIsNull.ToString())); } var blog = NiHonGoContext.Blogs .SingleOrDefault(r => r.Id == blogId); var catalog = NiHonGoContext.Catalogs .SingleOrDefault(r => r.Display == data.Catalog); try { if (catalog == null) { catalog = new Grammer { Display = data.Catalog }; NiHonGoContext.Catalogs.Add(catalog); NiHonGoContext.SaveChanges(); } if (blog == null) { var currentDate = DateTime.UtcNow; blog = new Blog { Title = data.Title, Detail = data.Detail, UserId = userId, Tag = data.Tag, Catalog = catalog, CreateDate = currentDate, }; NiHonGoContext.Blogs.Add(blog); NiHonGoContext.SaveChanges(); if (!string.IsNullOrWhiteSpace(data.Photo)) { var oldPhotoName = data.Photo.Split('\\').Last(); var newPhotoName = blog.Id + Path.GetExtension(oldPhotoName); File.Move(data.Photo, data.Photo.Replace(oldPhotoName, newPhotoName)); blog.Photo = newPhotoName; NiHonGoContext.SaveChanges(); } } else { blog.Title = data.Title; blog.Detail = data.Detail; blog.Tag = data.Tag; blog.UserId = userId; blog.Catalog = catalog; NiHonGoContext.SaveChanges(); } return(new IsSuccessResult <int> { ReturnObject = blog.Id }); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult <int>(ErrorCode.InternalError.ToString())); } }
public IsSuccessResult Edit(int userId, WordInfo data) { var log = GetLogger(); var isAdmin = NiHonGoContext.Users .Where(r => r.Type == (int)UserType.Admin) .Any(r => r.Id == userId); if (isAdmin == false) { return(new IsSuccessResult(ErrorCode.NoAuthentication.ToString())); } if (string.IsNullOrWhiteSpace(data.Japanese)) { return(new IsSuccessResult(ErrorCode.JapaneseContentIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.Chinese)) { return(new IsSuccessResult(ErrorCode.ChineseContentIsNull.ToString())); } try { if (data.Id == 0) { var isAny = NiHonGoContext.Words .Any(r => r.Japanese == data.Japanese); if (isAny) { return(new IsSuccessResult(ErrorCode.AlreadyHadThisWord.ToString())); } var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } var word = new Word { Japanese = data.Japanese, Chinese = data.Chinese, Levels = levels }; NiHonGoContext.Words.Add(word); NiHonGoContext.SaveChanges(); } else { var isAny = NiHonGoContext.Words .Any(r => r.Japanese == data.Japanese && r.Id != data.Id); if (isAny) { return(new IsSuccessResult(ErrorCode.AlreadyHadThisWord.ToString())); } var word = NiHonGoContext.Words .SingleOrDefault(r => r.Id == data.Id); if (word == null) { return(new IsSuccessResult(ErrorCode.WordNotFound.ToString())); } word.Japanese = data.Japanese; word.Chinese = data.Chinese; var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } word.Levels = levels; NiHonGoContext.SaveChanges(); } return(new IsSuccessResult()); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult(ErrorCode.InternalError.ToString())); } }
public IsSuccessResult Edit(int userId, VideoInfo data) { var log = GetLogger(); var isAdmin = NiHonGoContext.Users .Where(r => r.Type == (int)UserType.Admin) .Any(r => r.Id == userId); if (isAdmin == false) { return(new IsSuccessResult(ErrorCode.NoAuthentication.ToString())); } if (string.IsNullOrWhiteSpace(data.YoutubeUrl)) { return(new IsSuccessResult(ErrorCode.YoutubeUrlIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.JapaneseTitle)) { return(new IsSuccessResult(ErrorCode.JapaneseTitleIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.JapaneseContent)) { return(new IsSuccessResult(ErrorCode.JapaneseContentIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.ChineseTitle)) { return(new IsSuccessResult(ErrorCode.ChineseTitleIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.ChineseContent)) { return(new IsSuccessResult(ErrorCode.ChineseContentIsNull.ToString())); } try { if (data.Id == 0) { var isAny = NiHonGoContext.Videos .Any(r => r.YoutubeUrl == data.YoutubeUrl); if (isAny) { return(new IsSuccessResult(ErrorCode.AlreadyHadThisVideo.ToString())); } var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } var words = new List <Word>(); foreach (var item in data.Words) { var word = NiHonGoContext.Words.SingleOrDefault(r => r.Id == item.Id); if (word != null) { words.Add(word); } } var grammars = new List <Grammar>(); foreach (var item in data.Words) { var grammar = NiHonGoContext.Grammars.SingleOrDefault(r => r.Id == item.Id); if (grammar != null) { grammars.Add(grammar); } } var currentDate = DateTime.UtcNow; var video = new Video { YoutubeUrl = data.YoutubeUrl, JapaneseTitle = data.JapaneseTitle, JapaneseContent = data.JapaneseContent, ChineseTitle = data.ChineseTitle, ChineseContent = data.ChineseContent, Levels = levels, Words = words, Grammars = grammars, CreateDateTime = currentDate, UpdateDateTime = currentDate }; NiHonGoContext.Videos.Add(video); NiHonGoContext.SaveChanges(); } else { var isAny = NiHonGoContext.Videos .Any(r => r.YoutubeUrl == data.YoutubeUrl && r.Id != data.Id); if (isAny) { return(new IsSuccessResult(ErrorCode.AlreadyHadThisVideo.ToString())); } var video = NiHonGoContext.Videos .SingleOrDefault(r => r.Id == data.Id); if (video == null) { return(new IsSuccessResult(ErrorCode.VideoNotFound.ToString())); } var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } var words = new List <Word>(); foreach (var item in data.Words) { var word = NiHonGoContext.Words.SingleOrDefault(r => r.Id == item.Id); if (word != null) { words.Add(word); } } var grammars = new List <Grammar>(); foreach (var item in data.Words) { var grammar = NiHonGoContext.Grammars.SingleOrDefault(r => r.Id == item.Id); if (grammar != null) { grammars.Add(grammar); } } video.YoutubeUrl = data.YoutubeUrl; video.JapaneseTitle = data.JapaneseTitle; video.JapaneseContent = data.JapaneseContent; video.ChineseTitle = data.ChineseTitle; video.ChineseContent = data.ChineseContent; video.Levels = levels; video.Words = words; video.Grammars = grammars; video.UpdateDateTime = DateTime.UtcNow; NiHonGoContext.SaveChanges(); } return(new IsSuccessResult()); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult(ErrorCode.InternalError.ToString())); } }
public IsSuccessResult <UserInfo> AddUser(CreateUser data, UserType type) { var log = GetLogger(); if (string.IsNullOrWhiteSpace(data.Email)) { return(new IsSuccessResult <UserInfo>(ErrorCode.EmailIsNull.ToString())); } data.Email = data.Email.Trim(); if (Regex.IsMatch(data.Email, Constant.PatternEmail) == false) { return(new IsSuccessResult <UserInfo>(ErrorCode.EmailFormatIsWrong.ToString())); } if (string.IsNullOrWhiteSpace(data.Name)) { return(new IsSuccessResult <UserInfo>(ErrorCode.NameIsNull.ToString())); } data.Name = data.Name.Trim(); if (string.IsNullOrWhiteSpace(data.Password)) { return(new IsSuccessResult <UserInfo>(ErrorCode.PasswordIsNull.ToString())); } data.Password = data.Password.Trim(); var isAny = NiHonGoContext.Users .Any(r => r.Email == data.Email); if (isAny) { return(new IsSuccessResult <UserInfo>(ErrorCode.AlreadyHadThisEmail.ToString())); } if ((int)type > 1) { type = UserType.User; } try { var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } var user = NiHonGoContext.Users.Add(new User { Name = data.Name, Password = Cryptography.EncryptBySHA1(data.Password), Email = data.Email, Type = (int)type, Levels = levels, CreateDateTime = DateTime.UtcNow }); NiHonGoContext.SaveChanges(); return(new IsSuccessResult <UserInfo> { ReturnObject = new UserInfo { Id = user.Id, Email = user.Email } }); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult <UserInfo>(ErrorCode.InternalError.ToString())); } }
public IsSuccessResult Edit(int userId, GrammarInfo data) { var log = GetLogger(); var isAdmin = NiHonGoContext.Users .Where(r => r.Type == (int)UserType.Admin) .Any(r => r.Id == userId); if (isAdmin == false) { return(new IsSuccessResult(ErrorCode.NoAuthentication.ToString())); } if (string.IsNullOrWhiteSpace(data.Title)) { return(new IsSuccessResult(ErrorCode.TitleIsNull.ToString())); } if (string.IsNullOrWhiteSpace(data.Description)) { return(new IsSuccessResult(ErrorCode.DescriptionIsNull.ToString())); } try { if (data.Id == 0) { var isAny = NiHonGoContext.Grammars .Any(r => r.Title == data.Title); if (isAny) { return(new IsSuccessResult(ErrorCode.AlreadyHadThisGrammar.ToString())); } var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } var grammar = new Grammar { Title = data.Title, Description = data.Description, Levels = levels }; NiHonGoContext.Grammars.Add(grammar); NiHonGoContext.SaveChanges(); } else { var isAny = NiHonGoContext.Grammars .Any(r => r.Title == data.Title && r.Id != data.Id); if (isAny) { return(new IsSuccessResult(ErrorCode.AlreadyHadThisGrammar.ToString())); } var grammar = NiHonGoContext.Grammars .SingleOrDefault(r => r.Id == data.Id); if (grammar == null) { return(new IsSuccessResult(ErrorCode.GrammarNotFound.ToString())); } grammar.Title = data.Title; grammar.Description = data.Description; var levels = new List <Level>(); foreach (var item in data.Levels) { var level = NiHonGoContext.Levels.SingleOrDefault(r => r.Id == item.Id); if (level != null) { levels.Add(level); } } grammar.Levels = levels; NiHonGoContext.SaveChanges(); } return(new IsSuccessResult()); } catch (Exception ex) { log.Error(ex); return(new IsSuccessResult(ErrorCode.InternalError.ToString())); } }