Files
cms_thermo_active/Step.Database/Controllers/AlarmsController.cs
T
Lucio Maranta 29c4747785 Merge branch 'feature/Remove_autoinc_from_db' into develop
# Conflicts:
#	Step.Database/Migrations/201809181022557_InitMigration.Designer.cs
#	Step.Database/Migrations/201809181022557_InitMigration.cs
#	Step.Database/Migrations/201810041521424_InitMigration.Designer.cs
#	Step.Database/Migrations/201810041521424_InitMigration.cs
#	Step.Database/Migrations/201810100646276_InitMigration.Designer.cs
#	Step.Database/Migrations/201810100646276_InitMigration.cs
#	Step.Database/Step.Database.csproj
WIP Alarm
2018-10-16 16:57:46 +02:00

96 lines
3.0 KiB
C#

using Step.Model.DatabaseModels;
using Step.Model.DTOModels;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Diagnostics;
using System.Linq;
namespace Step.Database.Controllers
{
public class AlarmsController : IDisposable
{
private DatabaseContext dbCtx;
public AlarmsController()
{
// Initialize database context
dbCtx = new DatabaseContext();
}
public void Dispose()
{
// Clear database context
dbCtx.Dispose();
}
public List<AlarmOccurrencesModel> GetPaginated(int page, int pageSize)
{
Stopwatch st = new Stopwatch();
st.Start();
DateTime l = DateTime.Parse("2013/01/01");
var paginated = dbCtx.AlarmOccurrences.Include("AlarmDescription").OrderBy(x => x.AlarmOccurrenceId)
.Where(x => x.TimeStamp < DateTime.Today && x.TimeStamp > l)
.Skip(page * pageSize)
.Take(pageSize)
.ToList();
Console.WriteLine(st.ElapsedMilliseconds);
st.Stop();
return paginated;
}
public List<DTOAlarmHistoricModel> GetPaginatedWithFilter(int page, int pageSize, DateTime startDate, DateTime endDate, List<int> userIds)
{
var occurrences = dbCtx
.AlarmOccurrences
.OrderBy(x => x.AlarmOccurrenceId)
.Where(x =>
x.TimeStamp >= startDate && x.TimeStamp <= endDate
// && userIds.Any(y => x.Users.Select(z => z.UserId).Any(z => z == y))
)
.Skip(page * pageSize)
.Take(pageSize)
.Include("AlarmDescription")
.ToList();
//var ids = occurrences.Select(x => x.Id).ToList();
//var users = dbCtx.AlarmUsers.Where(x => ids.Contains(x.AlarmOccurrenceId) && userIds.Contains(x.UserId)).ToList();
return occurrences
.Select(x => (DTOAlarmHistoricModel)x)
.ToList();
}
public void InsertNewOccurrences(List<AlarmOccurrencesModel> alarms)
{
dbCtx.AlarmOccurrences.AddRange(alarms);
dbCtx.SaveChanges();
}
public void InsertNewNcAlarmDescriptions(List<AlarmDescriptionsModel> descriptions)
{
foreach (var desc in descriptions)
{
// Check if description exists already
var dbDesc = dbCtx.AlarmDescriptions.Where(x => x.AlarmId == desc.AlarmId).FirstOrDefault();
// If not add
if (dbDesc == null)
dbCtx.AlarmDescriptions.Add(desc);
}
dbCtx.SaveChanges();
}
public void InsertNewAlarmUser(List<AlarmUserModel> loggedUser)
{
dbCtx.AlarmUsers.AddRange(loggedUser);
dbCtx.SaveChanges();
}
}
}