Implement CreateLog, DeleteLog, UpdateLog methods from interface.
include LogSourceDb in project #29
This commit is contained in:
parent
4f4d247dc6
commit
101c19e4f4
@ -423,7 +423,8 @@ namespace SQLiteRepository
|
||||
IdentifierId = ident.Id,
|
||||
Direction = logDirection,
|
||||
Year = year,
|
||||
CalendarWeek = calendarWeek
|
||||
CalendarWeek = calendarWeek,
|
||||
Source = LogSourceDb.IDENTIFIER
|
||||
};
|
||||
|
||||
_connection.Insert(timeLog);
|
||||
@ -516,6 +517,73 @@ namespace SQLiteRepository
|
||||
return OperationResponse.DELETED;
|
||||
}
|
||||
|
||||
public OperationResponse DeleteLog(TimeLog log)
|
||||
{
|
||||
var query = _connection.Query<TimeLogDb>(
|
||||
"select * from TimeLogDb where Id=?", log.Id);
|
||||
|
||||
if (!query.Any())
|
||||
return OperationResponse.FAILED;
|
||||
|
||||
_connection.ExecuteScalar<TimeLogDb>("delete from TimeLogDb where Id=?", log.Id);
|
||||
|
||||
return OperationResponse.DELETED;
|
||||
}
|
||||
|
||||
public OperationResponse CreateLog(TimeLog log)
|
||||
{
|
||||
var calendarWeek = GetIso8601CalendarWeek(log.EventTime.UtcDateTime);
|
||||
var year = log.EventTime.Year;
|
||||
var dbLog = new TimeLogDb
|
||||
{
|
||||
SwipeEventDateTime = log.EventTime,
|
||||
Direction = (LogDirectionDb)(int)log.Direction,
|
||||
Year = year,
|
||||
CalendarWeek = calendarWeek,
|
||||
Source = (LogSourceDb)(int)log.Source,
|
||||
UserId_FK = log.UserId,
|
||||
IdentifierId = ConvertSourceToIdentifierId(log.Source),
|
||||
};
|
||||
_connection.Insert(dbLog);
|
||||
return OperationResponse.CREATED;
|
||||
}
|
||||
|
||||
public OperationResponse UpdateLog(TimeLog log)
|
||||
{
|
||||
var query = _connection.Query<TimeLogDb>(
|
||||
"select * from TimeLogDb where Id=?", log.Id);
|
||||
if(!query.Any())
|
||||
return OperationResponse.FAILED;
|
||||
|
||||
if (log.CalendarWeek > 52 || log.CalendarWeek < 1)
|
||||
{
|
||||
log.CalendarWeek = GetIso8601CalendarWeek(log.EventTime.UtcDateTime);
|
||||
}
|
||||
if (log.Year < 2017)
|
||||
{
|
||||
log.Year = log.EventTime.Year;
|
||||
}
|
||||
_connection.ExecuteScalar<TimeLogDb>(
|
||||
"update TimeLogDb set UserId_FK=?, Direction=?,SwipeEventDateTime=?,CalendarWeek=?,Year=?,Source=? where Id=?",
|
||||
log.UserId, (LogDirectionDb) (int) log.Direction, log.EventTime, log.CalendarWeek, log.Year,
|
||||
(LogSourceDb) (int) log.Source, log.Id);
|
||||
|
||||
return OperationResponse.UPDATED;
|
||||
}
|
||||
|
||||
private int ConvertSourceToIdentifierId(LogSource logSource)
|
||||
{
|
||||
switch (logSource)
|
||||
{
|
||||
case LogSource.UI:
|
||||
return -100;
|
||||
case LogSource.TRAYAPP:
|
||||
return -200;
|
||||
default:
|
||||
return -10;
|
||||
}
|
||||
}
|
||||
|
||||
private bool SetUserGroups(int userId, List<Group> groups)
|
||||
{
|
||||
var groupIds = GetGroupIds(groups.Select(x => x.Name).ToList());
|
||||
@ -560,7 +628,7 @@ namespace SQLiteRepository
|
||||
EventTime = x.SwipeEventDateTime,
|
||||
UserId = x.UserId_FK,
|
||||
Year = x.Year
|
||||
}).ToList();
|
||||
}).OrderBy(x=>x.EventTime.UtcDateTime).ToList();
|
||||
|
||||
var dict = new Dictionary<DayOfWeek, DailyLogs>();
|
||||
var logList = new List<DailyLogs>();
|
||||
@ -572,7 +640,7 @@ namespace SQLiteRepository
|
||||
}
|
||||
|
||||
//add the logs to the respective day of the week.
|
||||
foreach (var log in timeLogs)
|
||||
foreach (var log in timeLogs.OrderBy(x=>x.EventTime))
|
||||
{
|
||||
dict[log.EventTime.DayOfWeek].Logs.Add(log);
|
||||
}
|
||||
@ -607,7 +675,7 @@ namespace SQLiteRepository
|
||||
private double CalculateDailyTotal(DailyLogs dailyLogs)
|
||||
{
|
||||
var totalInTime = TimeSpan.FromSeconds(0);
|
||||
var logs = dailyLogs.Logs.OrderBy(x => x.Id).ToArray();
|
||||
var logs = dailyLogs.Logs.OrderBy(x => x.EventTime.UtcDateTime).ToArray();
|
||||
var totalCalcMax = IsOdd(logs.Length) ? logs.Length - 1 : logs.Length;
|
||||
for (int i = 0; i < totalCalcMax; i += 2)
|
||||
{
|
||||
|
||||
@ -61,6 +61,7 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="CardUniqueId.cs" />
|
||||
<Compile Include="GroupDb.cs" />
|
||||
<Compile Include="LogSourceDb.cs" />
|
||||
<Compile Include="SQLiteRepository.cs" />
|
||||
<Compile Include="Constants.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
Loading…
Reference in New Issue
Block a user