public void ConfiguringAnInsolvencyAsHal_WithDisputesProvided_EmbedsDisputesIntoHalResponse()
        {
            // Arrange
            var expectedDispute = new DisputeModel
            {
                DateRaised        = new DateTime(2017, 10, 12),
                Displayed         = true,
                DisputeId         = 1,
                InsolvencyOrderId = 2,
                ReferenceNumber   = "fdshiu308j"
            };

            var expectedInsolvency = new InsolvencyOrderModel {
                Disputes = new List <DisputeModel> {
                    expectedDispute
                }
            };

            var addressResolverMock = new Mock <IAddressResolver>();
            var includeReader       = new Mock <IIncludeReader>();

            includeReader.Setup(x => x.GetIncludes()).Returns(new string[] { "disputes" });

            var responseObject = new InsolvencyOrderResponse(addressResolverMock.Object, includeReader.Object);

            // Act
            var halResponse = responseObject.FormatForHal(expectedInsolvency);

            // Assert
            halResponse.ShouldHaveEmbeddedCollection(DomainResources.Disputes_camelCase, expectedInsolvency.Disputes);
        }
        public void FormattingADisputeAsHal_WithAllLinkCallsInTheConfiguration_DoesntAskForMoreLinksThanItNeeds()
        {
            // Arrange
            const int disputeId = 12345;

            var mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject  = new DisputeResponse(mockedAddressResolver.Object);
            var expectedDispute = new DisputeModel {
                DisputeId = disputeId
            };

            var callsToGetLinkToCollection         = Times.Never();
            var callsToGetLink                     = Times.Exactly(2);
            var callsToGetLinkToEmbeddedCollection = Times.Never();
            var callsToGetLinkToEmbeddedItem       = Times.Never();
            var callsToGetLinkToSelf               = Times.Never();
            var callsToGetParent                   = Times.Never();
            var callsToGetPostLink                 = Times.Never();

            // Act
            responseObject.FormatForHal(expectedDispute);

            // Assert
            TestAssertions.ValidateCallsToAddLinksInHalConfiguration(
                mockedAddressResolver,
                callsToGetLinkToCollection,
                callsToGetLink,
                callsToGetLinkToEmbeddedCollection,
                callsToGetLinkToEmbeddedItem,
                callsToGetLinkToSelf,
                callsToGetParent,
                callsToGetPostLink);
        }
Example #3
0
        /// <summary>
        /// GetDisputes
        /// </summary>
        /// <returns></returns>
        public IEnumerable <DisputeModel> GetDisputes()
        {
            try
            {
                var tblDisputes = _dbEntity.tblDisputes.Where(x => x.IsResolved == false || x.IsResolved == null).ToList();
                List <DisputeModel> listdisputes = new List <DisputeModel>();
                foreach (var item in tblDisputes)
                {
                    DisputeModel disputes = new DisputeModel();

                    disputes.Id          = (long)item.Id;
                    disputes.RaisedById  = (long)item.RaisedBy;
                    disputes.RaisedForId = (long)item.RaisedFor;
                    long raisedByid    = (long)item.RaisedBy;
                    var  raisedbyUser  = _dbEntity.tblUsers.FirstOrDefault(x => x.Id == raisedByid);
                    long raisedForid   = (long)item.RaisedFor;
                    var  raisedforUser = _dbEntity.tblUsers.FirstOrDefault(x => x.Id == raisedForid);
                    long bookingid     = (long)item.BookingId;
                    var  booking       = _dbEntity.tblBookings.Find(bookingid);
                    if (booking.UserId == item.RaisedBy)
                    {
                        disputes.RaisedBy  = raisedbyUser.FirstName + " " + raisedbyUser.LastName + " (Renter)";
                        disputes.RaisedFor = raisedforUser.FirstName + " " + raisedforUser.LastName + " (Owner)";
                    }
                    else if (booking.OwnerId == item.RaisedBy)
                    {
                        disputes.RaisedBy  = raisedbyUser.FirstName + " " + raisedbyUser.LastName + " (Owner)";
                        disputes.RaisedFor = raisedforUser.FirstName + " " + raisedforUser.LastName + " (Renter)";
                    }
                    disputes.BookingId   = item.BookingId.ToString();
                    disputes.CreatedDate = item.CreatedDate.ToString();
                    disputes.Reason      = item.Reason;
                    listdisputes.Add(disputes);
                }
                return(listdisputes);
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                Common.ExcepLog(dbEx);
                throw;
            }
            catch (Exception ex)
            {
                Common.ExcepLog(ex);
                throw;
            }
        }
        public void FormattingADisputeAsHal_WithDataProvided_CreatesHalConfigurationModelEqualToTheProvidedData()
        {
            // Arrange
            var mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject = new DisputeResponse(mockedAddressResolver.Object);
            var dispute        = new DisputeModel();

            // Act
            var halResponse = responseObject.FormatForHal(dispute);

            // Assert
            halResponse.ShouldHaveModel(dispute);
        }
        public void FormattingADisputeAsHal_SettingHalForceTrue_ConfiguresForceHalTrue()
        {
            // Arrange
            var mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject = new DisputeResponse(mockedAddressResolver.Object);
            var dispute        = new DisputeModel();

            // Act
            var halResponse = responseObject.FormatForHal(dispute);

            // Assert
            Assert.IsTrue(halResponse.Config.ForceHAL);
        }
        public void FormattingADisputeAsHal_WithDataProvided_CreatesHalFormatResponse()
        {
            // Arrange
            var mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject = new DisputeResponse(mockedAddressResolver.Object);
            var dispute        = new DisputeModel();

            // Act
            var halResponse = responseObject.FormatForHal(dispute);

            // Assert
            Assert.IsNotNull(halResponse);
        }
        public void FormattingADisputeAsHal_WithNullDataProvided_ThrowsArgumentNullException()
        {
            // Arrange
            DisputeModel dispute = null;
            var          mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject = new DisputeResponse(mockedAddressResolver.Object);

            // Act
            void CreateHalResponse() => responseObject.FormatForHal(dispute);

            // Assert
            Assert.ThrowsException <ArgumentNullException>((Action)CreateHalResponse);
        }
        public void FormattingADisputetAsHal_WithNullDataProvided_HasCorrectParameterNameInException()
        {
            // Arrange
            const string expectedParameterName = "item";

            DisputeModel dispute = null;
            var          mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject = new DisputeResponse(mockedAddressResolver.Object);

            // Act
            void CreateHalResponse() => responseObject.FormatForHal(dispute);

            // Assert
            ExceptionAssert.HasCorrectParameterNameForArgumentException(CreateHalResponse, expectedParameterName);
        }
        public void FormattingADisputeAsHal_WithACallToGetALinkForTheParentDisputeCollectionInTheConfiguration_CallsGetLink()
        {
            // Arrange
            const int disputeId = 12345;

            var mockedAddressResolver = new Mock <IAddressResolver>();

            var responseObject  = new DisputeResponse(mockedAddressResolver.Object);
            var expectedDispute = new DisputeModel {
                DisputeId = disputeId
            };

            // Act
            responseObject.FormatForHal(expectedDispute);

            // Assert
            mockedAddressResolver.Verify(
                mock => mock.GetLink(DomainResources.Disputes, CommonLinks.Parent),
                Times.Once);
        }
Example #10
0
        public IActionResult Index(int AuditMainId)
        {
            try
            {
                if (isAuditor)
                {
                    var disp = _auditToolContext.AuditMain.Where(y => y.Id == AuditMainId &&
                                                                 (y.IsDisputed == true || y.IsEscalated == true)).FirstOrDefault();

                    if (disp != null)
                    {
                        return(RedirectToAction("Details", "Search"));
                    }

                    var model = new DisputeModel
                    {
                        //need check for isDisputed
                        AuditMain = _auditToolContext.AuditMain.FirstOrDefault(x => x.Id == AuditMainId)
                    };

                    var auditResponses = _auditToolContext.AuditMainResponse.Where(x => x.AuditMainId == AuditMainId && x.IsNonCompliant == true).ToList();

                    var subcategory = _auditToolContext.SubCategory.Where(x => x.SubCatgId == model.AuditMain.SubcategoryId).FirstOrDefault();
                    var category    = _auditToolContext.Category.Where(x => x.CatgId == model.AuditMain.ServiceGroupId).FirstOrDefault();

                    model.ServiceDeliveryGroupName = category == null ? string.Empty : category.CatgDescription;
                    model.SubCategoryName          = subcategory == null ? string.Empty : subcategory.SubCatgDescription;

                    var listOfValues = _auditToolContext.ListOfValue.Where(x => x.IsActive == true).ToList();

                    var gracePeriod = new List <SelectListItem>
                    {
                        new SelectListItem()
                        {
                            Text = "--Select--", Value = "0", Selected = true
                        }
                    };
                    foreach (var item in listOfValues.Where(x => x.CodeType.Trim() == "Grace Period"))
                    {
                        gracePeriod.Add(new SelectListItem()
                        {
                            Text = item.Code, Value = item.Id.ToString()
                        });
                    }

                    var overturn = new List <SelectListItem>
                    {
                        new SelectListItem()
                        {
                            Text = "--Select--", Value = "0", Selected = true
                        }
                    };
                    foreach (var item in listOfValues.Where(x => x.CodeType.Trim() == "Over Turn"))
                    {
                        overturn.Add(new SelectListItem()
                        {
                            Text = item.Code, Value = item.Id.ToString()
                        });
                    }


                    var auditNonCompList = new List <AuditNonComplianceModel>();
                    foreach (var auditRes in auditResponses)
                    {
                        var questionText = _auditToolContext.QuestionBank.Where(x => x.QuestionId == auditRes.QuestionId).FirstOrDefault();

                        if (questionText != null)
                        {
                            auditNonCompList.Add(new AuditNonComplianceModel()
                            {
                                QuestionId            = auditRes.QuestionId,
                                Question              = questionText.QuestionDescription, //need to call service to get the question
                                IsCompliant           = (bool)auditRes.IsCompliant,
                                IsNonCompliant        = (bool)auditRes.IsNonCompliant,
                                IsHighNonCompliant    = (bool)auditRes.IsHighNonComplianceImpact,
                                DowngradeRequired     = false,
                                IsCorrectionRequired  = (bool)auditRes.IsCorrectionRequired,
                                NonComplianceComments = auditRes.NonComplianceComments,
                                TicketId              = auditRes.TicketId,
                                QuestionRank          = (int)auditRes.QuestionRank
                            });
                        }
                    }
                    model.GracePeriod             = gracePeriod;
                    model.Overturn                = overturn;
                    model.AuditNonComplianceModel = auditNonCompList;

                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                _logger.LogInformation($"Exception in Index method");
                _log.WriteErrorLog(new LogItem {
                    ErrorType = "Error", ErrorSource = "DisputeController_Index", ErrorDiscription = ex.InnerException != null ? ex.InnerException.ToString() : ex.Message
                });
            }
            return(RedirectToAction("Index", "Home"));
        }