This commit is contained in:
@@ -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
|
||||
@@ -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 ":";
|
||||
|
||||
Reference in New Issue
Block a user