public async Task <APIResponse> Activity([FromBody] ActivityModel model) { var sortExpression = new Dictionary <string, System.Linq.Expressions.Expression <Func <DAL.Models.UserActivity, object> > >() { { "date", _ => _.TimeCreated }, }; // validate if (BasePagerModel.IsInvalid(model, sortExpression.Keys, out var errFields)) { return(APIResponse.BadRequest(errFields)); } var user = await GetUserFromDb(); var query = ( from a in DbContext.UserActivity where a.UserId == user.Id select a ); var page = await DalExtensions.PagerAsync(query, model.Offset, model.Limit, sortExpression.GetValueOrDefault(model.Sort), model.Ascending ); var list = from i in page.Selected select new ActivityViewItem() { Type = i.Type.ToLower(), Comment = i.Comment, Ip = i.Ip, Agent = i.Agent, Date = ((DateTimeOffset)i.TimeCreated).ToUnixTimeSeconds(), } ; return(APIResponse.Success( new ActivityView() { Items = list.ToArray(), Limit = model.Limit, Offset = model.Offset, Total = page.TotalCount, } )); }
public async Task <APIResponse> Transparency([FromBody] TransparencyModel model) { var sortExpression = new Dictionary <string, System.Linq.Expressions.Expression <Func <DAL.Models.Transparency, object> > >() { { "date", _ => _.TimeCreated } }; // validate if (Models.API.BasePagerModel.IsInvalid(model, sortExpression.Keys, out var errFields)) { return(APIResponse.BadRequest(errFields)); } var query = ( from a in DbContext.Transparency select a ); var page = await DalExtensions.PagerAsync(query, model.Offset, model.Limit, sortExpression.GetValueOrDefault(model.Sort), model.Ascending ); var list = from i in page.Selected select new TransparencyViewItem() { Comment = i.Comment, Amount = i.Amount, Link = string.Format("https://ipfs.io/ipfs/{0}", i.Hash), Date = ((DateTimeOffset)i.TimeCreated).ToUnixTimeSeconds(), } ; var stat = await DbContext.TransparencyStat.AsNoTracking().LastOrDefaultAsync(); var statAssets = Common.Json.Parse <TransparencyViewStatItem[]>(stat?.AssetsArray ?? "[]"); var statBonds = Common.Json.Parse <TransparencyViewStatItem[]>(stat?.BondsArray ?? "[]"); var statFiat = Common.Json.Parse <TransparencyViewStatItem[]>(stat?.FiatArray ?? "[]"); var statGold = Common.Json.Parse <TransparencyViewStatItem[]>(stat?.GoldArray ?? "[]"); var statTotalOz = stat?.TotalOz ?? ""; var statTotalUsd = stat?.TotalUsd ?? ""; var statDataTime = stat?.DataTimestamp != null? ((DateTimeOffset)stat.DataTimestamp).ToUnixTimeSeconds(): (long?)null; var statAuditTime = stat?.AuditTimestamp != null? ((DateTimeOffset)stat.AuditTimestamp).ToUnixTimeSeconds(): (long?)null; return(APIResponse.Success( new TransparencyView() { Stat = new TransparencyViewStat() { Assets = statAssets, Bonds = statBonds, Fiat = statFiat, Gold = statGold, TotalOz = statTotalOz, TotalUsd = statTotalUsd, DataTimestamp = statDataTime, AuditTimestamp = statAuditTime, }, Items = list.ToArray(), Limit = model.Limit, Offset = model.Offset, Total = page.TotalCount, } )); }