This commit is contained in:
2018-08-28 17:30:56 +00:00
parent d995ce608b
commit db73345bca
2 changed files with 66 additions and 31 deletions

View File

@@ -43,7 +43,7 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Get event log for object and date range specified
@@ -66,12 +66,8 @@ namespace AyaNova.Api.Controllers
return StatusCode(401, new ApiNotAuthorizedResponse());
}
var result = await EventLogProcessor.GetLogForObject(opt.AyId, UserLocaleIdFromContext.LocaleId(HttpContext.Items), ct);
//Log
EventLogProcessor.AddEntry(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct);
return Content(result);
var result = await EventLogProcessor.GetLogForObject(opt, ct);
return Ok(new ApiOkResponse(result));
}
@@ -106,12 +102,9 @@ namespace AyaNova.Api.Controllers
return StatusCode(401, new ApiNotAuthorizedResponse());
}
var result = await EventLogProcessor.GetLogForUser(opt.AyId, UserLocaleIdFromContext.LocaleId(HttpContext.Items), ct);
var result = await EventLogProcessor.GetLogForUser(opt, ct);
//Log
EventLogProcessor.AddEntry(new Event(UserId, 0, AyaType.Metrics, AyaEvent.Retrieved), ct);
return Content(result);
return Ok(new ApiOkResponse(result));
}
@@ -127,10 +120,32 @@ namespace AyaNova.Api.Controllers
[FromQuery]
public long AyId { get; set; }
[FromQuery]
public DateTime StartDate { get; set; }
public DateTime? StartDate { get; set; }
[FromQuery]
public DateTime EndDate { get; set; }
public DateTime? EndDate { get; set; }
}
public sealed class ObjectEventLogItem
{
//DateTime, UserId, Event, Textra
public DateTime Date { get; set; }
public long UserId { get; set; }
public AyaEvent Event { get; set; }
public string Textra { get; set; }
}
public sealed class UserEventLogItem
{
//DateTime, ObjectType, ObjectId, Event, Textra
public DateTime Date { get; set; }
public AyaType Type { get; set; }
public long ObjectId { get; set; }
public AyaEvent Event { get; set; }
public string Textra { get; set; }
}
}//eoc
}//eons

View File

@@ -47,26 +47,44 @@ namespace AyaNova.Biz
/// <summary>
/// Get the event log for a specified object
/// </summary>
internal static async Task<string> GetLogForObject(long ayId, DateTime StartDate, DateTime EndDate, AyContext ct)
internal static async Task<AyaNova.Api.Controllers.EventLogController.ObjectEventLogItem[]> GetLogForObject(AyaNova.Api.Controllers.EventLogController.EventLogOptions opt, AyContext ct)
{
var items = await ct.Event
.Where(m => m.AyId == ayId)
.OrderBy(m => m.Created)
.ToListAsync();
//This is also an example of conditional where statements
if (items.Count == 0)
//Set up the query
var q = ct.Event.Select(m => m);
q = q.Where(m => m.AyId == opt.AyId);
if (opt.StartDate != null)
q = q.Where(m => m.Created > opt.StartDate);
if (opt.EndDate != null)
q = q.Where(m => m.Created < opt.EndDate);
q = q.OrderBy(m => m.Created);
//Execute the query
var EventItems = await q.ToArrayAsync();
//convert the Event array to the correct return type array
var ret = EventItems.Select(m => new AyaNova.Api.Controllers.EventLogController.ObjectEventLogItem()
{
return "";
}
Date = m.Created,
UserId = m.OwnerId,
Event = m.AyEvent,
Textra = m.Textra
}).ToArray();
return ret;
}
internal static Task<string> GetLogForUser(long ayId, long userLocaleId, AyContext ct)
internal static Task<string> GetLogForUser(AyaNova.Api.Controllers.EventLogController.EventLogOptions opt, AyContext ct)
{
throw new NotImplementedException();
}
@@ -75,7 +93,7 @@ namespace AyaNova.Biz
internal static string BuildLogEntry(bool userFormat, Event ev, List<KeyValuePair<string, string>> lt)
{
StringBuilder S=new StringBuilder();
StringBuilder S = new StringBuilder();
//Object format:
//DateTime, UserId, ActionNumber, Textra
@@ -84,11 +102,13 @@ namespace AyaNova.Biz
//DateTime, ObjectType, ObjectId, ActionNumber, Textra
ev
switch(ev.AyEvent){
switch (ev.AyEvent)
{
case AyaEvent.Created:
break;
break;
}
return ":";