Example #1
0
        public IActionResult CreateOrUpdate([FromBody] CmsContent data)
        {
            if (string.IsNullOrEmpty(data.Title))
            {
                return(Json(new JsonResponse <string> {
                    code = 1, message = "Title can not be empty"
                }));
            }
            if (data.Id == null || data.Id == Guid.Empty)
            {
                data.Id = Guid.NewGuid();
            }

            data = data.CalculateThumbnail();

            using (var db = new MoneyNoteDbContext())
            {
                var exited = db.CmsContents.FirstOrDefault(i => i.Id == data.Id);
                if (exited == null)
                {
                    data.CountView = 0;
                    db.CmsContents.Add(data);
                }
                else
                {
                    exited.ParentId        = data.ParentId;
                    exited.Title           = data.Title;
                    exited.Thumbnail       = data.Thumbnail;
                    exited.UrlRef          = data.UrlRef;
                    exited.Description     = data.Description;
                    exited.IsDeleted       = data.IsDeleted;
                    exited.ThumbnailWidth  = data.ThumbnailWidth;
                    exited.ThumbnailHeight = data.ThumbnailHeight;
                    exited.VideoWidth      = data.VideoWidth;
                    exited.VideoHeight     = data.VideoHeight;
                    exited.IsPublished     = data.IsPublished;
                }

                db.SaveChanges();

                var existed = db.CmsRelations.Where(i => i.ContentId == data.Id).ToList();
                db.RemoveRange(existed);
                db.SaveChanges();

                db.AddRange(data.CategoryIds.Select(c => new CmsRelation
                {
                    ContentId  = data.Id,
                    CategoryId = c
                }).ToList());
                db.SaveChanges();
            }

            return(Json(new JsonResponse <CmsContent> {
                data = data
            }));
        }
Example #2
0
        public IActionResult CreateOrUpdate([FromBody] CmsCategory data)
        {
            if (string.IsNullOrEmpty(data.Title))
            {
                return(Json(new JsonResponse <string> {
                    code = 1, message = "Title can not be empty"
                }));
            }
            if (data.Id == null || data.Id == Guid.Empty)
            {
                data.Id = Guid.NewGuid();
            }

            using (var db = new MoneyNoteDbContext())
            {
                var exited = db.CmsCategories.FirstOrDefault(i => i.Id == data.Id);
                if (exited == null)
                {
                    db.CmsCategories.Add(data);
                }
                else
                {
                    exited.ParentId  = data.ParentId;
                    exited.Title     = data.Title;
                    exited.IsDeleted = data.IsDeleted;
                }

                db.SaveChanges();
            }
            return(Json(new JsonResponse <CmsCategory> {
                data = data
            }));
        }
Example #3
0
        public static void InitSupperAdmin()
        {
            lock (_lock)
            {
                using (var db = new MoneyNoteDbContext())
                {
                    var user = db.Users.FirstOrDefault(i => i.Username.Equals("supperadmin"));
                    if (user == null)
                    {
                        db.Users.Add(new User
                        {
                            Username = "******",
                            Password = HashPassword("123@123")
                        });
                        db.SaveChanges();
                    }

                    try
                    {
                        _userAlcs       = db.UserAcls.Where(i => i.IsDeleted == 0).ToList();
                        _sysModules     = db.SysModules.Where(i => i.IsDeleted == 0).ToList();
                        _sysPermissions = db.SysPermissions.Where(i => i.IsDeleted == 0).ToList();
                    }
                    catch { }
                }

                var tempAcls = _userAlcs.GroupBy(i => i.UserId).Select(i => new { UserId = i.Key, Acls = i.DefaultIfEmpty() }).ToList();
                foreach (var itm in tempAcls)
                {
                    _lookupUserAcls.Add(itm.UserId, itm.Acls.ToList());
                }
            }
        }
Example #4
0
        public static void CreateOrUpdateSysPermission(string permissionCode, string moduleCode)
        {
            Task.Run(() =>
            {
                if (string.IsNullOrEmpty(permissionCode))
                {
                    return;
                }
                if (_sysPermissions.Any(i => i.Code == permissionCode && i.ModuleCode == moduleCode))
                {
                    return;
                }

                using (var db = new MoneyNoteDbContext())
                {
                    var existed = db.SysPermissions.FirstOrDefault(i => i.Code == permissionCode && i.ModuleCode == moduleCode);
                    if (existed == null)
                    {
                        db.SysPermissions.Add(new SysPermission {
                            Code = permissionCode, ModuleCode = moduleCode
                        });
                        db.SaveChanges();
                    }
                }
            });
        }
Example #5
0
        public static void CreateOrUpdateSysModule(string code)
        {
            Task.Run(() =>
            {
                if (string.IsNullOrEmpty(code))
                {
                    return;
                }
                if (_sysModules.Any(i => i.Code == code))
                {
                    return;
                }

                using (var db = new MoneyNoteDbContext())
                {
                    var existed = db.SysModules.FirstOrDefault(i => i.Code == code);
                    if (existed == null)
                    {
                        db.SysModules.Add(new SysModule {
                            Code = code
                        });
                        db.SaveChanges();
                    }
                }
            });
        }
Example #6
0
        public IActionResult UpdateRelation([FromBody] ContentRelationModel data)
        {
            using (var db = new MoneyNoteDbContext())
            {
                var existed = db.CmsRelations.Where(i => i.ContentId == data.ContentId).ToList();
                db.RemoveRange(existed);
                db.SaveChanges();

                db.AddRange(data.CategoryIds.Select(c => new CmsRelation
                {
                    ContentId  = data.ContentId,
                    CategoryId = c
                }).ToList());
                db.SaveChanges();
            }

            return(Json(new JsonResponse <ContentRelationModel> {
                data = data
            }));
        }
        public override void JobToDo()
        {
            var map = GetMapping();

            foreach (var m in map)
            {
                var vidsInChanl = _crawler.CrawlChannel(m.Key);
                var cateId      = Guid.Parse(m.Value);
                Task.Run(() =>
                {
                    try
                    {
                        using (var db = new MoneyNoteDbContext())
                        {
                            db.ChangeTracker.AutoDetectChangesEnabled = false;

                            foreach (var v in vidsInChanl)
                            {
                                var exited = db.CmsContents.FirstOrDefault(i => i.Title == v.Title);
                                var cid    = v.Id;
                                if (exited == null)
                                {
                                    cid = v.Id;
                                    db.CmsContents.Add(v);
                                }
                                else
                                {
                                    cid = exited.Id;
                                }

                                var r = db.CmsRelations.Where(i => i.ContentId == cid && i.CategoryId == cateId).FirstOrDefault();

                                if (r == null)
                                {
                                    db.CmsRelations.Add(new Identity.Enities.CmsRelation
                                    {
                                        ContentId  = cid,
                                        CategoryId = cateId
                                    });
                                }
                            }
                            db.SaveChanges();
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                });
            }
        }
 public IActionResult Delete([FromBody] User data)
 {
     using (var db = new MoneyNoteDbContext())
     {
         data = db.Users.FirstOrDefault(i => i.Id == data.Id && i.IsDeleted == 0);
         if (data != null)
         {
             data.IsDeleted = 1;
             db.SaveChanges();
         }
     }
     return(Json(new JsonResponse <User> {
         data = data
     }));
 }
        public JsonResponse <CmsContent> GetContent(ContentRequest request)
        {
            using (var db = new MoneyNoteDbContext())
            {
                var exited = db.CmsContents.FirstOrDefault(i => i.Id == request.id);
                if (exited != null)
                {
                    exited.CountView = exited.CountView + 1;
                    db.SaveChanges();
                }

                return(new JsonResponse <CmsContent> {
                    data = exited
                });
            }
        }
        static void Loop()
        {
            while (!_isStop)
            {
                try
                {
                    using (var db = new MoneyNoteDbContext())
                    {
                        var idsContent = db.CmsContents.Select(i => i.Id).ToList();
                        var noRelation = db.CmsRelations.Where(i => idsContent.Contains(i.ContentId) == false).ToList();
                        db.CmsRelations.RemoveRange(noRelation);
                        db.SaveChanges();
                    }
                    using (var db = new MoneyNoteDbContext())
                    {
                        var idsCat     = db.CmsCategories.Select(i => i.Id).ToList();
                        var noRelation = db.CmsRelations.Where(i => idsCat.Contains(i.CategoryId) == false).ToList();
                        db.CmsRelations.RemoveRange(noRelation);
                        db.SaveChanges();
                    }

                    List <CmsCategory> cats;
                    using (var db = new MoneyNoteDbContext())
                    {
                        cats = db.CmsCategories.ToList();

                        foreach (var c in cats)
                        {
                            c.ItemsCount = db.CmsRelations.Count(i => i.CategoryId == c.Id);
                        }
                    }
                    using (var db = new MoneyNoteDbContext())
                    {
                        db.SaveChangeWith_ModifiedFields(cats, i => i.ItemsCount);
                    }
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    Thread.Sleep(60 * 1000);
                }
            }
        }
Example #11
0
        public IActionResult Delete([FromBody] CmsCategory data)
        {
            using (var db = new MoneyNoteDbContext())
            {
                data = db.CmsCategories.FirstOrDefault(i => i.Id == data.Id);
                if (data != null)
                {
                    db.RemoveRange(db.CmsRelations.Where(i => i.CategoryId == data.Id));

                    db.CmsCategories.Remove(data);

                    db.SaveChanges();
                }
            }
            return(Json(new JsonResponse <CmsCategory> {
                data = data
            }));
        }
Example #12
0
        public IActionResult Delete([FromBody] CmsContent data)
        {
            using (var db = new MoneyNoteDbContext())
            {
                data = db.CmsContents.FirstOrDefault(i => i.Id == data.Id);
                if (data != null)
                {
                    db.CmsContents.Remove(data);

                    var listRelation = db.CmsRelations.Where(i => i.ContentId == data.Id).ToList();

                    db.CmsRelations.RemoveRange(listRelation);

                    db.SaveChanges();
                }
            }
            return(Json(new JsonResponse <CmsContent> {
                data = data
            }));
        }
Example #13
0
        public IActionResult YoutubeCrawl([FromBody] YoutubeCrawlRequest request)
        {
            try
            {
                var cmsContent = _youtubeCrawler.CrawlVideo(request.url, out Exception e);

                if (request.autoSave)
                {
                    using (var db = new MoneyNoteDbContext())
                    {
                        db.CmsContents.Add(cmsContent);
                        db.SaveChanges();
                    }
                }
                if (e == null)
                {
                    return(base.Json(new JsonResponse <CmsContent>
                    {
                        data = cmsContent
                    }));
                }
                else
                {
                    return(Json(new JsonResponse <CmsContent>
                    {
                        code = 1,
                        message = e.Message
                    }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new JsonResponse <CmsContent>
                {
                    code = 1,
                    message = ex.Message
                }));
            }
        }
        public IActionResult CreateOrUpdate([FromBody] User data)
        {
            if (string.IsNullOrEmpty(data.Username))
            {
                return(Json(new JsonResponse <string> {
                    code = 1, message = "Usenam can not be empty"
                }));
            }
            if (data.Id == null || data.Id == Guid.Empty)
            {
                data.Id = Guid.NewGuid();
            }

            var passwordHashed = string.Empty;

            if (!string.IsNullOrEmpty(data.Password))
            {
                passwordHashed = Auth.HashPassword(data.Password);
            }

            using (var db = new MoneyNoteDbContext())
            {
                var exited = db.Users.FirstOrDefault(i => i.Username == data.Username && i.IsDeleted == 0);
                if (exited == null)
                {
                    db.Users.Add(data);
                }
                else
                {
                    if (!string.IsNullOrEmpty(passwordHashed))
                    {
                        exited.Password = passwordHashed;
                    }
                }

                db.SaveChanges();
            }

            using (var db = new MoneyNoteDbContext())
            {
                var existed = db.UserAcls.Where(i => i.UserId == data.Id).ToList();
                db.UserAcls.RemoveRange(existed);
                db.SaveChanges();
            }
            if (data.Acls != null && data.Acls.Count > 0)
            {
                List <UserAcl> acls = data.Acls.Distinct().Select(i => new UserAcl
                {
                    Id             = Guid.NewGuid(),
                    ModuleCode     = i.ModuleCode,
                    PermissionCode = i.PermissionCode,
                    UserId         = data.Id
                }).ToList();
                using (var db = new MoneyNoteDbContext())
                {
                    db.UserAcls.AddRange(acls);
                    db.SaveChanges();
                }
            }

            data.Password = string.Empty;

            return(Json(new JsonResponse <User> {
                data = data
            }));
        }
Example #15
0
        public static bool Login(string username, string password, HttpContext context, out string token)
        {
            token = string.Empty;
            User user;

            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
            {
                return(false);
            }

            var encryptPwd = HashPassword(password);

            using (var db = new MoneyNoteDbContext())
            {
                user = db.Users.FirstOrDefault(i => i.Username.Equals(username) && i.Password.Equals(encryptPwd));
            }

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

            token            = GenerateToken(username);
            user.LastLogedin = DateTime.Now;
            user.LastToken   = token;

            if (context != null)
            {
                context.Session.Set("__CurrentUserToken", UTF8Encoding.UTF8.GetBytes(token));
            }

            MemoryMessageBus.Instance.CacheSet(token, user, DateTime.Now.AddDays(1));
            if (user.Username == "supperadmin")
            {
                MemoryMessageBus.Instance.CacheSet($"{token}_module", new List <string> {
                    "SupperAdmin"
                });
                MemoryMessageBus.Instance.CacheSet($"{token}_permission", new List <string> {
                    "SupperAdmin"
                });
            }
            else
            {
                if (_lookupUserAcls.TryGetValue(user.Id, out List <UserAcl> userAcls) && userAcls != null && userAcls.Count > 0)
                {
                    MemoryMessageBus.Instance.CacheSet($"{token}_module", userAcls.Select(i => i.ModuleCode).Distinct().ToList());
                    MemoryMessageBus.Instance.CacheSet($"{token}_permission", userAcls.Select(i => i.PermissionCode).Distinct().ToList());
                }
            }
            Task.Run(() =>
            {
                using (var db = new MoneyNoteDbContext())
                {
                    var tempU         = db.Users.FirstOrDefault(i => i.Id == user.Id);
                    tempU.LastToken   = user.LastToken;
                    tempU.LastLogedin = user.LastLogedin;
                    db.SaveChanges();
                }
            });
            return(true);
        }