Exemplo n.º 1
0
        public void CreateMalfunction_ModelIsValid_ReturnCreated()
        {
            var malfunctionDto = new MalfunctionDto {
                IsRepaired = true
            };
            var malfunction = Mapper.Map <MalfunctionDto, Malfunction>(malfunctionDto);

            unitOfWork.Setup(uow => uow.Malfunctions.Add(malfunction));
            unitOfWork.Setup(uow => uow.Complete());

            var result = controller.CreateMalfunction(malfunctionDto);

            Assert.That(result, Is.InstanceOf(typeof(CreatedNegotiatedContentResult <MalfunctionDto>)));
        }
Exemplo n.º 2
0
        public IHttpActionResult CreateMalfunction(MalfunctionDto malfunctionDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (!malfunctionDto.IsRepaired)
            {
                var equipmentInDb = unitOfWork.Equipment.Get(malfunctionDto.EquipmentId);
                equipmentInDb.IsOperational = false;
            }

            var malfunction = Mapper.Map <MalfunctionDto, Malfunction>(malfunctionDto);

            unitOfWork.Malfunctions.Add(malfunction);
            unitOfWork.Complete();

            malfunctionDto.Id = malfunction.Id;

            return(Created(new Uri(Request.RequestUri + "/" + malfunction.Id), malfunctionDto));
        }
Exemplo n.º 3
0
        public IHttpActionResult UpdateMalfunction(int id, MalfunctionDto malfunctionDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var malfunctionInDb = unitOfWork.Malfunctions.SingleOrDefault(m => m.Id == id);

            if (malfunctionInDb == null)
            {
                return(NotFound());
            }

            Mapper.Map(malfunctionDto, malfunctionInDb);

            var equipmentWhoseMalfunctionIsBeingEdited = unitOfWork.Equipment
                                                         .SingleOrDefault(e => e.Id == malfunctionInDb.EquipmentId);

            var unrepairedMalfunctionsOfTheEquipment = unitOfWork.Malfunctions
                                                       .Find(m => m.EquipmentId == malfunctionInDb.EquipmentId &&
                                                             m.Id != malfunctionInDb.Id &&
                                                             !m.IsRepaired);

            if (unrepairedMalfunctionsOfTheEquipment.Count() > 0 || !malfunctionDto.IsRepaired)
            {
                equipmentWhoseMalfunctionIsBeingEdited.IsOperational = false;
            }
            else
            {
                equipmentWhoseMalfunctionIsBeingEdited.IsOperational = true;
            }

            unitOfWork.Complete();

            return(Ok());
        }