diff --git a/server/AyaNova/Controllers/EventLogController.cs b/server/AyaNova/Controllers/EventLogController.cs index c7fcf07a..cf258124 100644 --- a/server/AyaNova/Controllers/EventLogController.cs +++ b/server/AyaNova/Controllers/EventLogController.cs @@ -64,8 +64,8 @@ namespace AyaNova.Api.Controllers if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); - var result = await EventLogProcessor.GetLogForObjectAsync(opt, ct); - return Ok(ApiOkResponse.Response(result, true)); + var ret = await EventLogProcessor.GetLogForObjectAsync(opt, ct); + return Ok(ApiOkResponse.Response(ret, true)); } @@ -94,9 +94,8 @@ namespace AyaNova.Api.Controllers return StatusCode(403, new ApiNotAuthorizedResponse()); } - var result = await EventLogProcessor.GetLogForUserAsync(opt, ct); - - return Ok(ApiOkResponse.Response(result, true)); + var ret = await EventLogProcessor.GetLogForUserAsync(opt, ct); + return Ok(ApiOkResponse.Response(ret, true)); } @@ -128,6 +127,12 @@ namespace AyaNova.Api.Controllers public int? Limit { get; set; } } + public sealed class ObjectEventLog + { + public string Name { get; set; } + public ObjectEventLogItem[] Events { get; set; } + } + public sealed class ObjectEventLogItem { //DateTime, UserId, Event, Textra @@ -138,6 +143,12 @@ namespace AyaNova.Api.Controllers public string Textra { get; set; } } + public sealed class UserEventLog + { + public string Name { get; set; } + public UserEventLogItem[] Events { get; set; } + } + public sealed class UserEventLogItem { //DateTime, ObjectType, ObjectId, Event, Textra diff --git a/server/AyaNova/biz/EventLogProcessor.cs b/server/AyaNova/biz/EventLogProcessor.cs index ea38d486..3f31b44d 100644 --- a/server/AyaNova/biz/EventLogProcessor.cs +++ b/server/AyaNova/biz/EventLogProcessor.cs @@ -44,9 +44,9 @@ namespace AyaNova.Biz /// Get the event log for a specified object /// Presentation is the client's responsibility (localization internationalization etc) /// - internal static async Task GetLogForObjectAsync(AyaNova.Api.Controllers.EventLogController.EventLogOptions opt, AyContext ct) + internal static async Task GetLogForObjectAsync(AyaNova.Api.Controllers.EventLogController.EventLogOptions opt, AyContext ct) { - //This is also an example of conditional where statements + AyaNova.Api.Controllers.EventLogController.ObjectEventLog ret = new Api.Controllers.EventLogController.ObjectEventLog(); //Set up the query var q = ct.Event.Select(m => m).AsNoTracking(); @@ -64,7 +64,7 @@ namespace AyaNova.Biz using (var command = ct.Database.GetDbConnection().CreateCommand()) { ct.Database.OpenConnection(); - var ret = EventItems.Select(m => new AyaNova.Api.Controllers.EventLogController.ObjectEventLogItem() + ret.Events = EventItems.Select(m => new AyaNova.Api.Controllers.EventLogController.ObjectEventLogItem() { Date = m.Created, UserId = m.UserId, @@ -73,6 +73,7 @@ namespace AyaNova.Biz Name = BizObjectNameFetcherDirect.Name(AyaType.User, m.UserId, command) }).ToArray(); + ret.Name = BizObjectNameFetcherDirect.Name(opt.AyType, opt.AyId, command); return ret; } } @@ -83,8 +84,11 @@ namespace AyaNova.Biz /// Get the event log for a specified User /// Presentation is the client's responsibility (localization internationalization etc) /// - internal static async Task GetLogForUserAsync(AyaNova.Api.Controllers.EventLogController.UserEventLogOptions opt, AyContext ct) + internal static async Task GetLogForUserAsync(AyaNova.Api.Controllers.EventLogController.UserEventLogOptions opt, AyContext ct) { + + AyaNova.Api.Controllers.EventLogController.UserEventLog ret = new Api.Controllers.EventLogController.UserEventLog(); + //Set up the query var q = ct.Event.Select(m => m); @@ -100,7 +104,7 @@ namespace AyaNova.Biz { ct.Database.OpenConnection(); //convert the Event array to the correct return type array - var ret = EventItems.Select(m => new AyaNova.Api.Controllers.EventLogController.UserEventLogItem() + ret.Events = EventItems.Select(m => new AyaNova.Api.Controllers.EventLogController.UserEventLogItem() { Date = m.Created, @@ -111,6 +115,7 @@ namespace AyaNova.Biz Name = BizObjectNameFetcherDirect.Name(m.AyType, m.AyId, command) }).ToArray(); + ret.Name = BizObjectNameFetcherDirect.Name(AyaType.User, opt.UserId, command); return ret; }