This commit is contained in:
@@ -43,7 +43,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get event log for object and date range specified
|
/// Get event log for object and date range specified
|
||||||
@@ -66,12 +66,8 @@ namespace AyaNova.Api.Controllers
|
|||||||
return StatusCode(401, new ApiNotAuthorizedResponse());
|
return StatusCode(401, new ApiNotAuthorizedResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = await EventLogProcessor.GetLogForObject(opt.AyId, UserLocaleIdFromContext.LocaleId(HttpContext.Items), ct);
|
var result = await EventLogProcessor.GetLogForObject(opt, ct);
|
||||||
|
return Ok(new ApiOkResponse(result));
|
||||||
//Log
|
|
||||||
EventLogProcessor.AddEntry(new Event(UserIdFromContext.Id(HttpContext.Items), 0, AyaType.Metrics, AyaEvent.Retrieved), ct);
|
|
||||||
|
|
||||||
return Content(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -106,12 +102,9 @@ namespace AyaNova.Api.Controllers
|
|||||||
return StatusCode(401, new ApiNotAuthorizedResponse());
|
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
|
return Ok(new ApiOkResponse(result));
|
||||||
EventLogProcessor.AddEntry(new Event(UserId, 0, AyaType.Metrics, AyaEvent.Retrieved), ct);
|
|
||||||
|
|
||||||
return Content(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -127,10 +120,32 @@ namespace AyaNova.Api.Controllers
|
|||||||
[FromQuery]
|
[FromQuery]
|
||||||
public long AyId { get; set; }
|
public long AyId { get; set; }
|
||||||
[FromQuery]
|
[FromQuery]
|
||||||
public DateTime StartDate { get; set; }
|
public DateTime? StartDate { get; set; }
|
||||||
[FromQuery]
|
[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
|
}//eoc
|
||||||
}//eons
|
}//eons
|
||||||
@@ -47,26 +47,44 @@ namespace AyaNova.Biz
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the event log for a specified object
|
/// Get the event log for a specified object
|
||||||
/// </summary>
|
/// </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
|
//This is also an example of conditional where statements
|
||||||
.Where(m => m.AyId == ayId)
|
|
||||||
.OrderBy(m => m.Created)
|
|
||||||
.ToListAsync();
|
|
||||||
|
|
||||||
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();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
@@ -75,7 +93,7 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
internal static string BuildLogEntry(bool userFormat, Event ev, List<KeyValuePair<string, string>> lt)
|
internal static string BuildLogEntry(bool userFormat, Event ev, List<KeyValuePair<string, string>> lt)
|
||||||
{
|
{
|
||||||
StringBuilder S=new StringBuilder();
|
StringBuilder S = new StringBuilder();
|
||||||
|
|
||||||
//Object format:
|
//Object format:
|
||||||
//DateTime, UserId, ActionNumber, Textra
|
//DateTime, UserId, ActionNumber, Textra
|
||||||
@@ -84,11 +102,13 @@ namespace AyaNova.Biz
|
|||||||
//DateTime, ObjectType, ObjectId, ActionNumber, Textra
|
//DateTime, ObjectType, ObjectId, ActionNumber, Textra
|
||||||
|
|
||||||
ev
|
ev
|
||||||
|
|
||||||
switch(ev.AyEvent){
|
|
||||||
|
switch (ev.AyEvent)
|
||||||
|
{
|
||||||
case AyaEvent.Created:
|
case AyaEvent.Created:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ":";
|
return ":";
|
||||||
|
|||||||
Reference in New Issue
Block a user