public EF_Driver_Activity_Data() { cardDriverActivity = new CardDriverActivity(); }
public EF_Driver_Activity_Data(byte[] value, int activityStructureLength) { cardDriverActivity = new CardDriverActivity(value, activityStructureLength); }
private async Task AddDriverCarActivitiesAsync(DriverData.DriverData driverData, Identifier identifier) { foreach (var record in driverData.DriverActivityData.CardDriverActivity.CardActivityDailyRecord) { var currentDate = DateTime.Parse((string)record.DateTime); var dailyActivity = await Context.CardActivityDailyRecords.FirstOrDefaultAsync(x => x.Date == currentDate && x.CardNumber == identifier.CardNumber).ConfigureAwait(false); if (dailyActivity == null) { dailyActivity = new CardActivityDailyRecord { CardNumber = identifier.CardNumber, Date = currentDate.Date, TotalDistance = double.Parse(record.Distance) }; await Context.CardActivityDailyRecords.AddAsync(dailyActivity).ConfigureAwait(false); } var lastAct = record.ActivityChangeInfo.LastOrDefault(); if (lastAct != null) { TimeSpan time = TimeSpan.Parse(lastAct.Time); var activityType = (DriverActivityType)Enum.Parse(typeof(DriverActivityType), lastAct.Activity); byte slot = (byte)(lastAct.Slot == "0" ? 0 : 1); var activity = await Context.CardDriverActivities .FirstOrDefaultAsync(x => x.TimeSpan == time && x.DriverActivityType == activityType && x.ActivityDailyRecordId == identifier.Id && x.SlotOne == slot) .ConfigureAwait(false); if (activity != null) { return; } } foreach (var activityChangeInfo in record.ActivityChangeInfo) { TimeSpan time = TimeSpan.Parse(activityChangeInfo.Time); var activityType = (DriverActivityType)Enum.Parse(typeof(DriverActivityType), activityChangeInfo.Activity); byte slot = (byte)(activityChangeInfo.Slot == "0"? 0 : 1); var activity = new CardDriverActivity { ActivityDailyRecordId = dailyActivity.Id, TimeSpan = time, SlotOne = slot, CardPresent = activityChangeInfo.Inserted != "False", DriverActivityType = activityType, Offset = activityChangeInfo.FileOffset, ActivityUtc = currentDate.Add(time) }; await Context.CardDriverActivities.AddAsync(activity).ConfigureAwait(false); } await Context.SaveChangesAsync().ConfigureAwait(false); } }