/// <summary>
 /// Method for populating the DataSource with all Call Logs for a specific Job,
 /// filtered accordingly to a User inputed Parameter
 /// </summary>
 public void ListFilteredCallLogs()
 {
     if (null != _view.JobId)
     {
         try
         {
             using (_callLogModel = new CallLogModel())
             {
                 if (string.Empty == _view.FilterValue)
                 {
                     _view.DataSource = _callLogModel.ListAllJobCallLogs(_view.JobId.Value).OrderBy(e => e.CallDate).ToList();
                 }
                 else
                 {
                     _view.DataSource = _callLogModel.ListFilteredCallLogs(_view.FilterType, _view.FilterValue, _view.JobId.Value).OrderBy(e => e.CallDate).ToList();
                 }
             }
         }
         catch (Exception ex)
         {
             Logger.Write(string.Format("There was an error loading the Filtered Call Log List!\n{0}\n{1}", ex.Message, ex.StackTrace));
             _view.DisplayMessage("There was an error loading the Filtered Call Log List", false);
         }
     }
 }
        public void ShouldReturnCallLogListFilteredByCallTime()
        {
            //Arrange
            FakeObjectSet<CS_CallLog> fakeCallLogList = new FakeObjectSet<CS_CallLog>();
            fakeCallLogList.AddObject(new CS_CallLog() { ID = 1, JobID = 1, Active = true, CallDate = new DateTime(2011, 05, 1) });
            fakeCallLogList.AddObject(new CS_CallLog() { ID = 2, JobID = 1, Active = true, CallDate = new DateTime(2011, 05, 10, 13, 45, 0) });
            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(e => e.CreateObjectSet<CS_CallLog>()).Returns(fakeCallLogList);
            CallLogModel model = new CallLogModel(mockUnitOfWork.Object);

            //Act
            IList<CS_CallLog> callLogList = model.ListFilteredCallLogs(Core.Globals.JobRecord.FilterType.Time, "5/11/2011 13:45", 1);
            //Assert
            Assert.AreEqual(1, callLogList.Count);
            Assert.AreEqual(2, callLogList[0].ID);
        }
        public void ShouldReturnCallLogListFilteredByCallTypeDescription()
        {
            //Arrange
            FakeObjectSet<CS_CallLog> fakeCallLogList = new FakeObjectSet<CS_CallLog>();
            fakeCallLogList.AddObject(new CS_CallLog()
            {
                ID = 1,
                JobID = 1,
                Active = true,
                CS_CallType = new CS_CallType() { Description = "CallTypeDescriptionTest" }
            });
            fakeCallLogList.AddObject(new CS_CallLog()
            {
                ID = 2,
                JobID = 2,
                Active = true,
                CS_CallType = new CS_CallType() { Description = "CallTypeDescriptionTest2" }
            });
            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(e => e.CreateObjectSet<CS_CallLog>()).Returns(fakeCallLogList);
            CallLogModel model = new CallLogModel(mockUnitOfWork.Object);

            //Act
            IList<CS_CallLog> callLogList = model.ListFilteredCallLogs(Core.Globals.JobRecord.FilterType.Type, "CallTypeDescriptionTest2", 2);
            //Assert
            Assert.AreEqual(1, callLogList.Count);
            Assert.AreEqual(2, callLogList[0].ID);
        }
        public void ShouldReturnNullListIfFilteringCallLogsByTimeFilterAndProvideInvalidTime()
        {
            //Arrange
            FakeObjectSet<CS_CallLog> fakeCallLogList = new FakeObjectSet<CS_CallLog>();
            fakeCallLogList.AddObject(new CS_CallLog() { ID = 1, JobID = 1, Active = true, CallDate = new DateTime(2011, 05, 1) });
            fakeCallLogList.AddObject(new CS_CallLog() { ID = 2, JobID = 1, Active = true, CallDate = new DateTime(2011, 05, 10, 13, 45, 0) });
            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(e => e.CreateObjectSet<CS_CallLog>()).Returns(fakeCallLogList);
            CallLogModel model = new CallLogModel(mockUnitOfWork.Object);

            //Act
            IList<CS_CallLog> callLogList = model.ListFilteredCallLogs(Core.Globals.JobRecord.FilterType.Time, "5/10/2011 24:61", 1);
            //Assert
            Assert.IsNull(callLogList);
        }
        public void ShouldReturnEmptyListIfFilteringCallLogsByTimeFilterAndDontProvideTimeValue()
        {
            //Arrange
            FakeObjectSet<CS_CallLog> fakeCallLogList = new FakeObjectSet<CS_CallLog>();
            fakeCallLogList.AddObject(new CS_CallLog() { ID = 1, JobID = 1, Active = true, CallDate = new DateTime(2011, 05, 1) });
            fakeCallLogList.AddObject(new CS_CallLog() { ID = 2, JobID = 1, Active = true, CallDate = new DateTime(2011, 05, 10) });
            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(e => e.CreateObjectSet<CS_CallLog>()).Returns(fakeCallLogList);
            CallLogModel model = new CallLogModel(mockUnitOfWork.Object);

            //Act
            IList<CS_CallLog> callLogList = model.ListFilteredCallLogs(Core.Globals.JobRecord.FilterType.Time, "5/10/2011 13:45", 1);
            //Assert
            Assert.AreEqual(0, callLogList.Count);
        }
        public void ShouldReturnCallLogListFilteredByUser()
        {
            //Arrange
            FakeObjectSet<CS_CallLog> fakeCallLogList = new FakeObjectSet<CS_CallLog>();
            fakeCallLogList.AddObject(new CS_CallLog()
            {
                ID = 1,
                JobID = 1,
                Active = true,
                CreatedBy = "druziska"
            });
            fakeCallLogList.AddObject(new CS_CallLog()
            {
                ID = 2,
                JobID = 2,
                Active = true,
                CreatedBy = "cburton"
            });

            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(e => e.CreateObjectSet<CS_CallLog>()).Returns(fakeCallLogList);
            CallLogModel model = new CallLogModel(mockUnitOfWork.Object);

            //Act
            IList<CS_CallLog> callLogList = model.ListFilteredCallLogs(Core.Globals.JobRecord.FilterType.User, "druziska", 1);
            //Assert
            Assert.AreEqual(1, callLogList.Count);
            Assert.AreEqual(1, callLogList[0].ID);
        }