示例#1
0
        private async Task <OpreationResult <ChannelViewModel> > GetChannel(string Url)
        {
            try
            {
                if (string.IsNullOrEmpty(Url))
                {
                    Url = request.Url;
                }
                var channel = await db.Set <Models.Channel>().Where(a => a.Url == Url).FirstOrDefaultAsync();

                if (channel == null)
                {
                    channel = await db.Set <Models.Channel>().OrderBy(a => a.SortId).FirstOrDefaultAsync();
                }
                if (channel == null)
                {
                    return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.QueryNull, null, "不存在任何频道,请新建一个频道"));
                }
                return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.Success, mapper.MapTo <ChannelViewModel, Models.Channel>(channel)));
            }
            catch (Exception e)
            {
                throw new Exception("查询频道时出错", e);
            }
        }
示例#2
0
        public async Task <OpreationResult <Administrator> > LoginAsync(AdminLoginViewModel model)
        {
            var dbAdmin = await db.Set <Administrator>().Where(a => a.LoginName == model.LoginName).AsNoTracking().FirstOrDefaultAsync();

            if (dbAdmin == null)
            {
                return(OpreationResult <Administrator> .Init(OpreationResuleType.QueryNull, null, "用户不存在"));
            }
            if (dbAdmin.Password != SHA.SHA512(model.Password).ToLower())
            {
                return(OpreationResult <Administrator> .Init(OpreationResuleType.ValidtorError, null, "您的密码不正确"));
            }
            var updateModel = new AdministratorDto()
            {
                Id            = dbAdmin.Id,
                LastLoginIp   = model.LastLoginIp,
                LastLoginTime = DateTime.Now,
                Password      = dbAdmin.Password,
                LoginName     = dbAdmin.LoginName
            };

            await CreateOrUpdate(updateModel);

            dbAdmin.Password = null;
            return(OpreationResult <Administrator> .Init(OpreationResuleType.Success, dbAdmin));
        }
示例#3
0
        private async Task <OpreationResult <ChannelViewModel> > GetChannel(int Id)
        {
            try
            {
                if (Id != 0)
                {
                    var channel = await db.Set <Models.Channel>().Where(a => a.Id == Id).FirstOrDefaultAsync();

                    if (channel == null)
                    {
                        return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.QueryNull, null, "请求的频道不存在"));
                    }
                    else
                    {
                        return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.Success, mapper.MapTo <ChannelViewModel, Models.Channel>(channel)));
                    }
                }
                else
                {
                    return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.ValidtorError, null, "请求的参数错误,请勿非法修改参数"));
                }
            }
            catch (Exception e)
            {
                throw new Exception("根据ID获取频道时出错", e);
            }
        }
示例#4
0
        async Task <OpreationResult> IChannelContract.Delete(int Id)
        {
            var categoryCount = await db.Set <Models.ArticleCategory>().Where(a => a.ChannelID == Id).CountAsync();

            if (categoryCount > 0)
            {
                return(OpreationResult.Init(OpreationResuleType.ValidtorError, "请先删除当前频道下的分类"));
            }
            else
            {
                var delModel = await db.Set <Models.Channel>().Where(a => a.Id == Id).FirstOrDefaultAsync();

                db.Set <Models.Channel>().Remove(delModel);
                var result = await db.SaveChangesAsync();

                if (result > 0)
                {
                    return(OpreationResult.Init(OpreationResuleType.Success, "删除频道成功"));
                }
                else
                {
                    return(OpreationResult.Init(OpreationResuleType.Error, "删除失败"));
                }
            }
        }
示例#5
0
 public void OnResultExecuting(ResultExecutingContext context)
 {
     if (!context.ModelState.IsValid)
     {
         var errorMessages = context.ModelState.Values.Where(a => a.Errors.Count > 0).SelectMany(a => a.Errors.Select(c => c.ErrorMessage)).ToList();
         context.Result = new JsonResult(OpreationResult <List <string> > .Init(OpreationResuleType.ValidtorError, errorMessages, "校验失败"));
     }
 }
示例#6
0
        OpreationResult <List <ChannelViewModel> > IChannelContract.GetList(Func <Models.Channel, bool> func)
        {
            var list = db.Set <Models.Channel>().Where(func).OrderBy(a => a.SortId).Select(a => new ChannelViewModel()
            {
                Id = a.Id, Name = a.ChannelName, SortId = a.SortId, Url = a.Url
            }).ToList();

            return(OpreationResult <List <ChannelViewModel> > .Init(OpreationResuleType.Success, list, "获取成功"));
        }
示例#7
0
 public OpreationResult Clear(string key)
 {
     try
     {
         cache.Remove(key);
         return(OpreationResult.Init(OpreationResuleType.Success));
     }catch (Exception e)
     {
         return(OpreationResult.Init(OpreationResuleType.Error, e.Message));
     }
 }
示例#8
0
 public OpreationResult <T> Get <T>(string key) where T : class
 {
     try
     {
         var result = cache.Get(key);
         return(OpreationResult <T> .Init(OpreationResuleType.Success, (T)result));
     }
     catch (Exception e)
     {
         return(OpreationResult <T> .Init(OpreationResuleType.Error, default(T), e.Message));
     }
 }
示例#9
0
 public async Task <OpreationResult <ChannelViewModel> > GetChannel(ChannelQueryModel queryModel)
 {
     if (queryModel.Id != null)
     {
         return(await this.GetChannel(queryModel.Id.Value));
     }
     if (queryModel.Url != null)
     {
         return(await this.GetChannel(queryModel.Url));
     }
     return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.QueryNull, null, "频道不存在"));
 }
示例#10
0
 public OpreationResult Set <T>(T obj, string key, TimeSpan timeSpan)
 {
     try
     {
         var result = cache.Set <T>(key, obj, timeSpan);
         return(OpreationResult.Init(OpreationResuleType.Success));
     }
     catch (Exception e)
     {
         return(OpreationResult.Init(OpreationResuleType.Error, e.Message));
     }
 }
示例#11
0
 public OpreationResult <T> Get <T>(string key) where T : class
 {
     try
     {
         var result = cache.Get(key);
         var temp   = JsonConvert.SerializeObject(result);
         return(OpreationResult <T> .Init(OpreationResultType.Success, JsonConvert.DeserializeObject <T>(temp)));
     }
     catch (Exception e)
     {
         return(OpreationResult <T> .Init(OpreationResultType.Error, default(T), e.Message));
     }
 }
示例#12
0
 public OpreationResult Update <T>(T obj, string key)
 {
     try
     {
         cache.Remove(key);
         cache.Set <T>(key, obj);
         return(OpreationResult.Init(OpreationResuleType.Success));
     }
     catch (Exception e)
     {
         return(OpreationResult.Init(OpreationResuleType.Error, e.Message));
     }
 }
示例#13
0
        public async Task <OpreationResult <LoginResult> > Post([FromBody] AdminLoginViewModel model)
        {
            model.LastLoginIp   = HttpContext.GetClientUserIp();
            model.LastLoginTime = DateTime.Now;
            var result = await administrator.LoginAsync(model);

            if (result.ResuleType == OpreationResuleType.Success)
            {
                var token = Guid.NewGuid().ToString("N").ToString().ToLower();
                cache.Set(result.Data, token);
                return(OpreationResult <LoginResult> .Init(OpreationResuleType.Success, new LoginResult()
                {
                    Token = token, UserName = result.Data.LoginName
                }, "登陆成功"));
            }
            return(OpreationResult <LoginResult> .Init(result.ResuleType, null, result.Message));
        }
示例#14
0
        async Task <OpreationResult> IChannelContract.Update(ChannelDto model)
        {
            var dbModel = await db.Set <Models.Channel>().Where(a => a.Id == model.Id).FirstOrDefaultAsync();

            dbModel = mapper.MapTo <Models.Channel, ChannelDto>(model);
            db.Set <Models.Channel>().Update(dbModel);
            var result = await db.SaveChangesAsync();

            if (result > 0)
            {
                return(OpreationResult.Init(OpreationResuleType.Success));
            }
            else
            {
                return(OpreationResult.Init(OpreationResuleType.Error, "更新失败,请稍后重试"));
            }
        }
示例#15
0
 public void OnAuthorization(AuthorizationFilterContext context)
 {
     if (string.IsNullOrEmpty(context.HttpContext.Request.Headers["H-Token"]))
     {
         context.Result = new JsonResult(OpreationResult.Init(OpreationResuleType.UnLogin, "用户未登陆"));
     }
     else
     {
         cache = (ICache)service.GetService(typeof(ICache));
         var cacheResult = cache.Get <Models.Administrator>(context.HttpContext.Request.Headers["H-Token"].ToString().ToLower());
         if (cacheResult.ResuleType == OpreationResuleType.Success)
         {
             environment.CurrentUser = cacheResult.Data;
         }
         else
         {
             context.Result = new JsonResult(OpreationResult.Init(OpreationResuleType.UnLogin, "用户未登陆"));
         }
     }
 }
示例#16
0
        async Task <OpreationResult <ChannelViewModel> > IChannelContract.Insert(ChannelDto model)
        {
            if (model != null)
            {
                var dbModel = mapper.MapTo <Models.Channel, ChannelDto>(model);
                await db.Set <Models.Channel>().AddAsync(dbModel);

                int result = await db.SaveChangesAsync();

                if (result > 0)
                {
                    return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.Success, mapper.MapTo <ChannelViewModel, Models.Channel>(dbModel), "新增成功"));
                }
                else
                {
                    return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.Error, null, "新增失败"));
                }
            }
            else
            {
                return(OpreationResult <ChannelViewModel> .Init(OpreationResuleType.ValidtorError, null, "数据格式不正确"));
            }
        }
示例#17
0
        public async Task <OpreationResult> CreateOrUpdate(AdministratorDto dto)
        {
            if (dto.Id.HasValue)
            {
                var dbAdmin = await db.Set <Administrator>().Where(a => a.Id == dto.Id).FirstOrDefaultAsync();

                dbAdmin.LastLoginIp   = dto.LastLoginIp;
                dbAdmin.LastLoginTime = dto.LastLoginTime;
                dbAdmin.LoginName     = dto.LoginName;
                if (!string.IsNullOrEmpty(dto.Password))
                {
                    dbAdmin.Password = dto.Password;
                }
                db.Set <Administrator>().Update(dbAdmin);
            }
            else
            {
                var dbAdmin = mapper.MapTo <Administrator, AdministratorDto>(dto);
                await db.Set <Administrator>().AddAsync(dbAdmin);
            }
            var saveResult = await db.SaveChangesAsync();

            return(saveResult > 0 ? OpreationResult.Init(OpreationResuleType.Success) : OpreationResult.Init(OpreationResuleType.Error));
        }