public void RemoveComponentTypeByTransfertObject_ThrowException_WhenDeletingANonExistantComponentType()
        {
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new FacilityContext(options))
            {
                var ComponentTypeToUseInTest1 = new ComponentTypeTO
                {
                    Archived = false,
                    Name     = new MultiLanguageString("Name1En", "Name1Fr", "Name1Nl"),
                };
                var ComponentTypeToUseInTest2 = new ComponentTypeTO
                {
                    Archived = false,
                    Name     = new MultiLanguageString("Name2En", "Name2Fr", "Name2Nl"),
                };
                var ComponentTypeToUseInTest3 = new ComponentTypeTO
                {
                    Archived = false,
                    Name     = new MultiLanguageString("Name3En", "Name3Fr", "Name3Nl"),
                };


                var componentTypeRepository = new ComponentTypeRepository(memoryCtx);

                componentTypeRepository.Add(ComponentTypeToUseInTest1);
                componentTypeRepository.Add(ComponentTypeToUseInTest2);
                memoryCtx.SaveChanges();

                Assert.ThrowsException <LoggedException>(() => componentTypeRepository.Remove(ComponentTypeToUseInTest3));
            }
        }
        public bool AddReading(AmmoniaController controller)
        {
            using var context = new FacilityContext();
            var device = context.ModbusDevices.Find(controller.Id);

            if (device != null)
            {
                controller.LastRead.AmmoniaControllerId    = controller.Id;
                context.Entry <ModbusDevice>(device).State = EntityState.Modified;
                context.AmmoniaControllerReadings.Add(controller.LastRead);
            }
            else
            {
                return(false);
            }
            try {
                context.SaveChanges();

                return(true);
            } catch (Exception e) {
                StringBuilder builder = new StringBuilder();
                builder.AppendFormat("{0} Save Failed", controller.Identifier)
                .AppendFormat("Exception: {0}", e.Message).AppendLine();
                if (e.InnerException != null)
                {
                    builder.AppendFormat("Inner Exception: {0}", e.InnerException.Message).AppendLine();
                }
                return(false);
            }
        }
 public bool AddReading(H2Generator generator)
 {
     try {
         using var context = new FacilityContext();
         var device = context.ModbusDevices.Find(generator.Id);
         if (device != null)
         {
             generator.LastRead.GeneratorId = generator.Id;
             context.GeneratorSystemErrors.Add(generator.LastRead.AllSystemErrors);
             context.GeneratorSystemWarnings.Add(generator.LastRead.AllSystemWarnings);
             generator.SystemState       = generator.LastRead.SystemState;
             generator.OperationMode     = generator.LastRead.OperationMode;
             context.Entry(device).State = EntityState.Modified;
             context.H2GenReadings.Add(generator.LastRead);
             context.SaveChanges();
             //GC.Collect();
             return(true);
         }
         else
         {
             return(false);
         }
     } catch (Exception e) {
         StringBuilder builder = new StringBuilder();
         builder.AppendFormat("{0} Save Failed", generator.Identifier)
         .AppendFormat("Exception: {0}", e.Message).AppendLine();
         if (e.InnerException != null)
         {
             builder.AppendFormat("Inner Exception: {0}", e.InnerException.Message).AppendLine();
         }
         return(false);
     }
 }
        public bool AddReading(GenericMonitorBox monitorBox)
        {
            try {
                using var context = new FacilityContext();
                var device = context.ModbusDevices.Find(monitorBox.Id);
                if (device != null)
                {
                    monitorBox.LastRead.GenericMonitorBoxId = monitorBox.Id;
                    context.GenericBoxAlerts.Add(monitorBox.LastRead.GenericMonitorBoxAlert);
                    context.GenericBoxReadings.Add(monitorBox.LastRead);
                    context.Entry <ModbusDevice>(device).State = EntityState.Modified;
                    context.SaveChanges();

                    return(true);
                }
                else
                {
                    return(false);
                }
            } catch (Exception e) {
                StringBuilder builder = new StringBuilder();
                builder.AppendFormat("{0} Save Failed", monitorBox.Identifier)
                .AppendFormat("Exception: {0}", e.Message).AppendLine();
                if (e.InnerException != null)
                {
                    builder.AppendFormat("Inner Exception: {0}", e.InnerException.Message).AppendLine();
                }
                return(false);
            }
        }
        public bool AddReading(GenericMonitorBox monitorBox)
        {
            try {
                using var context = new FacilityContext();
                var device = context.ModbusDevices.Find(monitorBox.Id);
                if (device != null)
                {
                    monitorBox.LastRead.GenericMonitorBoxId = monitorBox.Id;
                    context.GenericBoxAlerts.Add(monitorBox.LastRead.GenericMonitorBoxAlert);
                    context.GenericBoxReadings.Add(monitorBox.LastRead);
                    context.Entry <ModbusDevice>(device).State = EntityState.Modified;
                    context.SaveChanges();
                    this._logger.LogInformation("{0} Save Succeeded, In-Memory Read: {1}", monitorBox.Identifier, monitorBox.BoxReadings.Count);
                    return(true);
                }
                else
                {
                    this._logger.LogError("{0} Device Not Found", monitorBox.Identifier);
                    return(false);
                }
            } catch (Exception e) {
                StringBuilder builder = new StringBuilder();
                builder.AppendFormat("{0} Save Failed", monitorBox.Identifier)
                .AppendFormat("Exception: {0}", e.Message).AppendLine();
                if (e.InnerException != null)
                {
                    builder.AppendFormat("Inner Exception: {0}", e.InnerException.Message).AppendLine();
                }

                this._logger.LogError(builder.ToString());
                return(false);
            }
        }
        /// <summary>
        /// Saving captured image into database.
        /// </summary>
        /// <param name="imageBytes"></param>
        private async Task StoreInDatabaseAsync(byte[] imageBytes)
        {
            try
            {
                var user = await _userManager.GetUserAsync(User);

                if (imageBytes != null)
                {
                    string base64String = Convert.ToBase64String(imageBytes, 0, imageBytes.Length);
                    string imageUrl     = string.Concat("data:image/jpg;base64,", base64String);

                    ImageStore imageStore = new ImageStore()
                    {
                        CreateDate        = DateTime.Now,
                        ImageBase64String = imageUrl,
                        ImageId           = 0,
                        UniqueID          = user.Id
                    };

                    _facilityContext.ImageStore.Add(imageStore);
                    _facilityContext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                _logger.LogInformation(e.Message);
            }
        }
Esempio n. 7
0
        public void GetRoomsByFloors_ReturnCorrectNumberOfCorrespondingRooms()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            IRoomRepository  roomRepository  = new RoomRepository(context);
            IFloorRepository floorRepository = new FloorRepository(context);

            var floor = new FloorTO {
                Number = 2
            };
            var floor2 = new FloorTO {
                Number = -1
            };
            var addedFloor1 = floorRepository.Add(floor);
            var addedFloor2 = floorRepository.Add(floor2);

            context.SaveChanges();

            RoomTO room1 = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor1
            };
            RoomTO room2 = new RoomTO {
                Name = new MultiLanguageString("Room2", "Room2", "Room2"), Floor = addedFloor1
            };
            RoomTO room3 = new RoomTO {
                Name = new MultiLanguageString("Room3", "Room3", "Room3"), Floor = addedFloor2
            };

            roomRepository.Add(room1);
            roomRepository.Add(room2);
            roomRepository.Add(room3);
            context.SaveChanges();

            var result1 = roomRepository.GetRoomsByFloor(addedFloor1.Id);
            var result2 = roomRepository.GetRoomsByFloor(addedFloor2.Id);

            Assert.IsNotNull(result1);
            Assert.IsNotNull(result2);
            Assert.AreEqual(2, result1.Count);
            Assert.AreEqual(1, result2.Count);
        }
        public void GetAll_AddThreeRooms_ReturnCorrectNumberOfRooms()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            IRoomRepository  repository      = new RoomRepository(context);
            IFloorRepository floorRepository = new FloorRepository(context);

            var floor = new FloorTO {
                Number = 2
            };
            var floor2 = new FloorTO {
                Number = -1
            };
            var addedFloor1 = floorRepository.Add(floor);
            var addedFloor2 = floorRepository.Add(floor2);

            context.SaveChanges();

            RoomTO room1 = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor1
            };
            RoomTO room2 = new RoomTO {
                Name = new MultiLanguageString("Room2", "Room2", "Room2"), Floor = addedFloor1
            };
            RoomTO room3 = new RoomTO {
                Name = new MultiLanguageString("Room3", "Room3", "Room3"), Floor = addedFloor2
            };

            repository.Add(room1);
            context.SaveChanges();
            repository.Add(room2);
            context.SaveChanges();
            repository.Add(room3);
            context.SaveChanges();
            //ACT
            var rooms = repository.GetAll();

            //ASSERT
            Assert.AreEqual(3, rooms.Count());
        }
Esempio n. 9
0
 public ActionResult Create([Bind("Name,Address,PhoneNumber,Email,FacilityStatusId")] Facility facility)
 {
     if (ModelState.IsValid)
     {
         _context.Facilities.Add(facility);
         _context.SaveChanges();
         return(RedirectToAction("Index"));
     }
     StatusesDropDownList(facility.FacilityStatusId);
     return(View(facility));
 }
Esempio n. 10
0
        public static bool ImportAnalog(MonitorBox box, FacilityContext context)
        {
            if (File.Exists(analogFile))
            {
                try {
                    List <AnalogChannel> channels = new List <AnalogChannel>();
                    var lines = File.ReadAllLines(analogFile);
                    foreach (var line in lines)
                    {
                        var           row       = line.Split('\t');
                        bool          connected = (row[3] == "TRUE") ? true : false;
                        AnalogChannel channel   = new AnalogChannel(row[0], Convert.ToInt32(row[1]), Convert.ToInt32(row[2]), connected, row[4]);
                        channel.Slope      = Convert.ToDouble(row[5]);
                        channel.Offset     = Convert.ToDouble(row[6]);
                        channel.Resistance = Convert.ToDouble(row[7]);

                        channel.ZeroValue = Convert.ToDouble(row[8]);
                        channel.MaxValue  = Convert.ToDouble(row[9]);

                        channel.Alarm1SetPoint = Convert.ToDouble(row[10]);
                        channel.Alarm1Enabled  = (row[11] == "TRUE") ? true : false;
                        channel.Alarm1Action   = RegisterConverters.GetAction(row[12]);

                        channel.Alarm2SetPoint = Convert.ToDouble(row[13]);
                        channel.Alarm2Enabled  = (row[14] == "TRUE") ? true : false;
                        channel.Alarm2Action   = RegisterConverters.GetAction(row[15]);

                        channel.Alarm3SetPoint = Convert.ToDouble(row[16]);
                        channel.Alarm3Enabled  = (row[17] == "TRUE") ? true : false;
                        channel.Alarm3Action   = RegisterConverters.GetAction(row[18]);

                        string sname = row[19];
                        channel.ValueDivisor = Convert.ToDouble(row[20]);
                        var sensor = context.Categories.OfType <SensorType>().Include(e => e.Registers).FirstOrDefault(e => e.Name == sname);
                        if (sensor != null)
                        {
                            channel.SensorType = sensor;
                        }
                        channel.Device = box;
                        box.Registers.Add(channel);
                        context.Registers.Add(channel);
                    }
                    context.SaveChanges();
                    return(true);
                } catch {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        public void RemoveById_AddANewIncidentThenRemoveIt_ReturnTrue()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            IIncidentRepository      incidentRepository      = new IncidentRepository(context);
            IRoomRepository          roomRepository          = new RoomRepository(context);
            IFloorRepository         floorRepository         = new FloorRepository(context);
            IComponentTypeRepository componentTypeRepository = new ComponentTypeRepository(context);
            IIssueRepository         issueRepository         = new IssueRepository(context);
            //Room(and it's floor)
            var floor = new FloorTO {
                Number = 2
            };
            var addedFloor1 = floorRepository.Add(floor);

            context.SaveChanges();
            RoomTO room = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor1
            };
            var addedRoom = roomRepository.Add(room);

            context.SaveChanges();
            //Component
            var componentType = new ComponentTypeTO {
                Archived = false, Name = new MultiLanguageString("Name1En", "Name1Fr", "Name1Nl")
            };
            var addedComponentType = componentTypeRepository.Add(componentType);

            context.SaveChanges();
            //Issue
            var issue = new IssueTO {
                Description = "prout", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = addedComponentType
            };
            var addedIssue = issueRepository.Add(issue);

            context.SaveChanges();
            //Incident
            var incident = new IncidentTO
            {
                Description = "No coffee",
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
                Room        = addedRoom
            };
            var addedIncident = incidentRepository.Add(incident);

            context.SaveChanges();
            //ACT
            var result = incidentRepository.Remove(addedIncident.Id);

            context.SaveChanges();
            //ASSERT
            Assert.IsTrue(result);
        }
        public void AddIssue_Successfull()
        {
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new FacilityContext(options))
            {
                var componentTypeRepository = new ComponentTypeRepository(memoryCtx);

                var componentType = new ComponentTypeTO
                {
                    Archived = false,
                    Name     = new MultiLanguageString("Name1En", "Name1Fr", "Name1Nl"),
                };

                var addedComponentType1 = componentTypeRepository.Add(componentType);
                memoryCtx.SaveChanges();

                var IssueToUseInTest = new IssueTO
                {
                    Description   = "prout",
                    Name          = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"),
                    ComponentType = addedComponentType1,
                };

                var issueRepository = new IssueRepository(memoryCtx);

                issueRepository.Add(IssueToUseInTest);
                memoryCtx.SaveChanges();

                Assert.AreEqual(1, issueRepository.GetAll().Count());
                var IssueToAssert = issueRepository.GetById(1);
                Assert.AreEqual(1, IssueToAssert.Id);
                Assert.AreEqual("prout", IssueToAssert.Description);
            }
        }
Esempio n. 13
0
        public static void AddSensor()
        {
            using FacilityContext context = new FacilityContext();
            SensorType sensor = new SensorType();

            sensor.Name      = "H2 Detector-LEL";
            sensor.ZeroPoint = 0;
            sensor.MaxPoint  = 100;
            sensor.Units     = "LEL%";
            context.Categories.Add(sensor);
            context.SaveChanges();

            Console.WriteLine("Should be done!");
            Console.ReadKey();
        }
Esempio n. 14
0
        public static void BuildAlertDef()
        {
            using FacilityContext context = new FacilityContext();
            AlertSetting alarm = new AlertSetting();

            alarm.Name         = "Alarm";
            alarm.Frequency    = 1.0;
            alarm.Notification = NotificationType.EMAIL;
            alarm.AlertAction  = AlertAction.ALARM;

            AlertSetting warn = new AlertSetting();

            warn.Name         = "Warning";
            warn.Frequency    = 4;
            warn.Notification = NotificationType.EMAIL;
            warn.AlertAction  = AlertAction.WARN;

            AlertSetting SoftWarning = new AlertSetting();

            SoftWarning.Name         = "Soft Warning";
            SoftWarning.Frequency    = 24;
            SoftWarning.Notification = NotificationType.EMAIL;
            SoftWarning.AlertAction  = AlertAction.SOFTWARN;

            AlertSetting Maintenance = new AlertSetting();

            Maintenance.Name         = "Maintenance";
            Maintenance.Frequency    = 0;
            Maintenance.AlertAction  = AlertAction.MAINTENANCE;
            Maintenance.Notification = NotificationType.WEBSITE;

            AlertSetting none = new AlertSetting();

            none.Name         = "Nothing";
            none.Frequency    = 0;
            none.Notification = NotificationType.NONE;
            none.AlertAction  = AlertAction.NOTHING;

            context.AlertSettings.Add(alarm);
            context.AlertSettings.Add(warn);
            context.AlertSettings.Add(Maintenance);
            context.AlertSettings.Add(SoftWarning);
            context.AlertSettings.Add(none);
            context.SaveChanges();
            Console.WriteLine("Should be done");
            Console.ReadKey();
        }
Esempio n. 15
0
 public static void Initialize(FacilityContext context)
 {
     if (!context.FacilityStatuses.Any())
     {
         context.FacilityStatuses.AddRange(
             new FacilityStatus
         {
             Name = "Active"
         },
             new FacilityStatus
         {
             Name = "InActive"
         },
             new FacilityStatus
         {
             Name = "OnHold"
         }
             );
         context.SaveChanges();
     }
 }
        public void GetAllFloors_Successfull()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var memoryCtx = new FacilityContext(options);

            var FloorToUseInTest = new FloorTO
            {
                Id     = 1,
                Number = 0
            };

            var FloorToUseInTest1 = new FloorTO
            {
                Id     = 2,
                Number = -1
            };
            var FloorToUseInTest2 = new FloorTO
            {
                Id     = 3,
                Number = -2
            };
            var floorRepository = new FloorRepository(memoryCtx);

            //ACT
            floorRepository.Add(FloorToUseInTest);
            floorRepository.Add(FloorToUseInTest1);
            floorRepository.Add(FloorToUseInTest2);
            memoryCtx.SaveChanges();

            //ASSERT
            Assert.AreEqual(3, floorRepository.GetAll().Count());
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            //BuildAlertDef();
            //TestingNewLinq();
            //TestWarning(true);
            //TestWarning(false);
            //TestAlarm(true);
            //TestAlarm(false);
            //TestMaintenance(true);
            //TestMaintenance(false);
            //TestRead();

            //CreateAmmoniaController();
            //ImportModbusGeneric();
            //TestAmmoniaRead();
            //TestSetCal(true);
            //TestGetCal();
            //TestSendCal();

            //ExportH2ReadingParam();
            //ExportNH3ReadingParam();
            //ExportH2SystemErrorParam();
            //ImportModbusH2("Generator 1", "172.21.100.25", 1);
            //ImportModbusH2("Generator 2", "172.21.100.26", 1);
            //ImportModbusH2("Generator 3", "172.21.100.27", 1);

            //TestGeneratorRead("Generator 1");
            //TestGeneratorRead("Generator 2");
            //TestGeneratorRead("Generator 3");

            //AddSensor();
            using var context = new FacilityContext();
            context.EmailRecipients.Add(new EmailRecipients()
            {
                Name = "Andrew Elmendorf", Email = "*****@*****.**"
            });
            context.EmailRecipients.Add(new EmailRecipients()
            {
                Name = "Mills Estes", Email = "*****@*****.**"
            });
            context.EmailRecipients.Add(new EmailRecipients()
            {
                Name = "Rakesh Jain", Email = "*****@*****.**"
            });
            context.EmailRecipients.Add(new EmailRecipients()
            {
                Name = "Brad Murdaugh", Email = "*****@*****.**"
            });

            context.SaveChanges();
            Console.WriteLine("Should be done");
            Console.ReadKey();

            //EmailService emailer = new EmailService();
            //MessageBuilder builder = new MessageBuilder();

            //builder.StartMessage();
            //builder.AppendAlert("Test Analog Channel", "654.25", "ALARM3");
            //builder.AppendAlert("Test Analog Channel 2", "255.25", "ALARM3");
            //builder.AppendAlert("Test Analog Channel 3", "456.25", "ALARM3");
            //builder.AppendAlert("Test Digital Channel 1", "Alarm", "Tripped");
            //builder.AppendAlert("Test Digital Channel 2", "Alarm", "Tripped");
            //builder.AppendAlert("Test Digital Channel 3", "Alarm", "Tripped");

            //builder.AppendStatus("Test Analog Channel", "654.25");
            //builder.AppendStatus("Test Analog Channel 2", "255.25");
            //builder.AppendStatus("Test Analog Channel 3", "456.25");
            //builder.AppendStatus("Test Digital Channel 1", "Alarm");
            //builder.AppendStatus("Test Digital Channel 2", "Alarm");
            //builder.AppendStatus("Test Digital Channel 3", "Alarm");

            //emailer.SendMessage(builder.FinishMessage());

            //Console.WriteLine("Should be done!");
            //Console.ReadKey();
        }
        public void GetCommentsByIncidentId_AddMultipleComments_ReturnRelevantComments()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            ICommentRepository       commentRepository       = new CommentRepository(context);
            IIncidentRepository      incidentRepository      = new IncidentRepository(context);
            IRoomRepository          roomRepository          = new RoomRepository(context);
            IFloorRepository         floorRepository         = new FloorRepository(context);
            IComponentTypeRepository componentTypeRepository = new ComponentTypeRepository(context);
            IIssueRepository         issueRepository         = new IssueRepository(context);

            var floor = new FloorTO {
                Number = 2
            };
            var addedFloor = floorRepository.Add(floor);

            context.SaveChanges();

            RoomTO room = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor
            };
            var addedRoom = roomRepository.Add(room);

            context.SaveChanges();

            var componentType = new ComponentTypeTO {
                Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL")
            };
            var addedComponentType = componentTypeRepository.Add(componentType);

            context.SaveChanges();

            var issue = new IssueTO {
                Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = addedComponentType
            };
            var addedIssue = issueRepository.Add(issue);

            context.SaveChanges();

            var incident1 = new IncidentTO
            {
                Description = "This thing is broken!",
                Room        = addedRoom,
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
            };
            var incident2 = new IncidentTO
            {
                Description = "This thing is still broken after a week!",
                Room        = addedRoom,
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now.AddDays(7),
                UserId      = 1,
            };
            var addedIncident1 = incidentRepository.Add(incident1);
            var addedIncident2 = incidentRepository.Add(incident2);

            context.SaveChanges();

            var comment1 = new CommentTO
            {
                Incident   = addedIncident1,
                Message    = "I got in touch with the right people, it'll get fixed soon!",
                SubmitDate = DateTime.Now,
                UserId     = 2
            };
            var comment2 = new CommentTO
            {
                Incident   = addedIncident1,
                Message    = "New ETA is Monday morning.",
                SubmitDate = DateTime.Now.AddDays(1),
                UserId     = 2
            };
            var comment3 = new CommentTO
            {
                Incident   = addedIncident2,
                Message    = "It should be fixed very soon, sorry for the inconvenience!",
                SubmitDate = DateTime.Now.AddDays(8),
                UserId     = 2
            };

            commentRepository.Add(comment1);
            commentRepository.Add(comment2);
            commentRepository.Add(comment3);
            context.SaveChanges();

            // Act
            var result1 = commentRepository.GetCommentsByIncident(addedIncident1.Id);
            var result2 = commentRepository.GetCommentsByIncident(addedIncident2.Id);

            // Assert
            Assert.IsNotNull(result1);
            Assert.IsNotNull(result2);
            Assert.AreEqual(2, result1.Count);
            Assert.AreEqual(1, result2.Count);
        }
Esempio n. 19
0
        public void GetAll_AddThreeIncidents_ReturnCorrectNumberOfIncidents()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            IIncidentRepository      incidentRepository      = new IncidentRepository(context);
            IRoomRepository          roomRepository          = new RoomRepository(context);
            IFloorRepository         floorRepository         = new FloorRepository(context);
            IComponentTypeRepository componentTypeRepository = new ComponentTypeRepository(context);
            IIssueRepository         issueRepository         = new IssueRepository(context);
            //Room(and it's floor)
            var floor = new FloorTO {
                Number = 2
            };
            var addedFloor1 = floorRepository.Add(floor);

            context.SaveChanges();
            RoomTO room = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor1
            };
            var addedRoom = roomRepository.Add(room);

            context.SaveChanges();
            //Component
            var componentType = new ComponentTypeTO {
                Archived = false, Name = new MultiLanguageString("Name1En", "Name1Fr", "Name1Nl")
            };
            var addedComponentType = componentTypeRepository.Add(componentType);

            context.SaveChanges();
            //Issue
            var issue = new IssueTO {
                Description = "prout", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = addedComponentType
            };
            var addedIssue = issueRepository.Add(issue);

            context.SaveChanges();
            //Incidents
            var incident1 = new IncidentTO
            {
                Description = "No coffee",
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
                Room        = addedRoom
            };
            var incident2 = new IncidentTO
            {
                Description = "Technical issue",
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 2,
                Room        = addedRoom
            };
            var incident3 = new IncidentTO
            {
                Description = "No sugar",
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
                Room        = addedRoom
            };

            incidentRepository.Add(incident1);
            incidentRepository.Add(incident2);
            incidentRepository.Add(incident3);
            context.SaveChanges();
            //ACT
            var result = incidentRepository.GetAll();

            //ASSERT
            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.Count());
        }
Esempio n. 20
0
 public void Save()
 {
     _dbContext.SaveChanges(true);
 }
Esempio n. 21
0
        public void RemoveCommentById_AddNewCommentThenRemoveIt_ReturnsTrue()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            ICommentRepository       commentRepository       = new CommentRepository(context);
            IIncidentRepository      incidentRepository      = new IncidentRepository(context);
            IRoomRepository          roomRepository          = new RoomRepository(context);
            IFloorRepository         floorRepository         = new FloorRepository(context);
            IComponentTypeRepository componentTypeRepository = new ComponentTypeRepository(context);
            IIssueRepository         issueRepository         = new IssueRepository(context);

            var floor = new FloorTO {
                Number = 2
            };
            var addedFloor = floorRepository.Add(floor);

            context.SaveChanges();

            RoomTO room = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor
            };
            var addedRoom = roomRepository.Add(room);

            context.SaveChanges();

            var componentType = new ComponentTypeTO {
                Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL")
            };
            var addedComponentType = componentTypeRepository.Add(componentType);

            context.SaveChanges();

            var issue = new IssueTO {
                Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = addedComponentType
            };
            var addedIssue = issueRepository.Add(issue);

            context.SaveChanges();

            var incident = new IncidentTO
            {
                Description = "This thing is broken !",
                Room        = addedRoom,
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
            };
            var addedIncident = incidentRepository.Add(incident);

            context.SaveChanges();

            var comment = new CommentTO
            {
                Incident   = addedIncident,
                Message    = "I got in touch with the right people, it'll get fixed soon!",
                SubmitDate = DateTime.Now,
                UserId     = 1
            };
            var addedComment = commentRepository.Add(comment);

            context.SaveChanges();

            // Act
            var result = commentRepository.Remove(addedComment.Id);

            context.SaveChanges();

            // Assert
            Assert.IsTrue(result);
            Assert.ThrowsException <KeyNotFoundException>(() => commentRepository.GetById(addedComment.Id));
        }
Esempio n. 22
0
        public void UpdateComment_AddNewCommentThenUpdateIt_ReturnsUpdatedComment()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            ICommentRepository       commentRepository       = new CommentRepository(context);
            IIncidentRepository      incidentRepository      = new IncidentRepository(context);
            IRoomRepository          roomRepository          = new RoomRepository(context);
            IFloorRepository         floorRepository         = new FloorRepository(context);
            IComponentTypeRepository componentTypeRepository = new ComponentTypeRepository(context);
            IIssueRepository         issueRepository         = new IssueRepository(context);

            var floor = new FloorTO {
                Number = 2
            };
            var addedFloor = floorRepository.Add(floor);

            context.SaveChanges();

            RoomTO room = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor
            };
            var addedRoom = roomRepository.Add(room);

            context.SaveChanges();

            var componentType = new ComponentTypeTO {
                Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL")
            };
            var addedComponentType = componentTypeRepository.Add(componentType);

            context.SaveChanges();

            var issue = new IssueTO {
                Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = addedComponentType
            };
            var addedIssue = issueRepository.Add(issue);

            context.SaveChanges();

            var incident = new IncidentTO
            {
                Description = "This thing is broken !",
                Room        = addedRoom,
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
            };
            var addedIncident = incidentRepository.Add(incident);

            context.SaveChanges();

            var comment = new CommentTO
            {
                Incident   = addedIncident,
                Message    = "I got in touch with the right people, it'll get fixed soon!",
                SubmitDate = DateTime.Now,
                UserId     = 1
            };
            var commentAdded = commentRepository.Add(comment);

            context.SaveChanges();

            // Act
            var later = DateTime.Now.AddHours(2);

            commentAdded.Message    = "Updated message";
            commentAdded.SubmitDate = later;
            var result = commentRepository.Update(commentAdded);

            context.SaveChanges();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Updated message", result.Message);
            Assert.AreEqual(later, result.SubmitDate);
        }
Esempio n. 23
0
        public void GetAll_AddThreeComments_ReturnsCorrectNumberOfComments()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <FacilityContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FacilityContext(options);
            ICommentRepository       commentRepository       = new CommentRepository(context);
            IIncidentRepository      incidentRepository      = new IncidentRepository(context);
            IRoomRepository          roomRepository          = new RoomRepository(context);
            IFloorRepository         floorRepository         = new FloorRepository(context);
            IComponentTypeRepository componentTypeRepository = new ComponentTypeRepository(context);
            IIssueRepository         issueRepository         = new IssueRepository(context);

            var floor = new FloorTO {
                Number = 2
            };
            var addedFloor = floorRepository.Add(floor);

            context.SaveChanges();

            RoomTO room = new RoomTO {
                Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = addedFloor
            };
            var addedRoom = roomRepository.Add(room);

            context.SaveChanges();

            var componentType = new ComponentTypeTO {
                Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL")
            };
            var addedComponentType = componentTypeRepository.Add(componentType);

            context.SaveChanges();

            var issue = new IssueTO {
                Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = addedComponentType
            };
            var addedIssue = issueRepository.Add(issue);

            context.SaveChanges();

            var incident = new IncidentTO
            {
                Description = "This thing is broken !",
                Room        = addedRoom,
                Issue       = addedIssue,
                Status      = IncidentStatus.Waiting,
                SubmitDate  = DateTime.Now,
                UserId      = 1,
            };
            var addedIncident = incidentRepository.Add(incident);

            context.SaveChanges();

            var comment1 = new CommentTO
            {
                Incident   = addedIncident,
                Message    = "I got in touch with the right people, it'll get fixed soon!",
                SubmitDate = DateTime.Now,
                UserId     = 2
            };
            var comment2 = new CommentTO
            {
                Incident   = addedIncident,
                Message    = "New ETA is Monday morning.",
                SubmitDate = DateTime.Now.AddDays(1),
                UserId     = 2
            };
            var comment3 = new CommentTO
            {
                Incident   = addedIncident,
                Message    = "Postponed to Tuesday morning.",
                SubmitDate = DateTime.Now.AddDays(2),
                UserId     = 2
            };

            commentRepository.Add(comment1);
            commentRepository.Add(comment2);
            commentRepository.Add(comment3);
            context.SaveChanges();

            // Act
            var result = commentRepository.GetAll();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.Count());
        }