public void Update(EquipmentEmployeeRelationDTO relationDTO)
        {
            EquipmentEmployeeRelation relation = Mapper.Map <EquipmentEmployeeRelation>(relationDTO);

            _unitOfWork.EquipmentEmployeeRelations.Update(relation);
            _unitOfWork.Save();
        }
        private void UpdateRelationUpdatedAtField(Guid relationId)
        {
            EquipmentEmployeeRelation relation = _unitOfWork
                                                 .EquipmentEmployeeRelations
                                                 .Get(relationId);

            relation.UpdatedAt = DateTime.Now;
        }
        public void SetOwner(Guid equipmentId, int employeeId)
        {
            EquipmentEmployeeRelation relation = _unitOfWork
                                                 .EquipmentEmployeeRelations
                                                 .Find(r => r.EquipmentId == equipmentId && r.EmployeeId == employeeId)
                                                 .First();

            UpdateIsOwnerField(relation.Id, true);
        }
        public void UpdateDates(EquipmentEmployeeRelationDTO relationDTO)
        {
            EquipmentEmployeeRelation relation = _unitOfWork.EquipmentEmployeeRelations.Get(relationDTO.Id);

            relation.CreatedAt = relationDTO.CreatedAt;
            relation.UpdatedAt = relationDTO.UpdatedAt;

            _unitOfWork.EquipmentEmployeeRelations.Update(relation);
            _unitOfWork.Save();
        }
        public void UpdateIsOwnerField(Guid relationId, bool value)
        {
            EquipmentEmployeeRelation relation = _unitOfWork
                                                 .EquipmentEmployeeRelations
                                                 .Get(relationId);

            relation.IsOwner = value;
            _unitOfWork.EquipmentEmployeeRelations.Update(relation);
            _unitOfWork.Save();
        }
        public void Add(EquipmentEmployeeRelationDTO relationDTO)
        {
            EquipmentEmployeeRelation relation = Mapper.Map <EquipmentEmployeeRelation>(relationDTO);

            relation.Id        = Guid.NewGuid();
            relation.CreatedAt = DateTime.Now;
            relation.UpdatedAt = DateTime.Now;
            relation.IsOwner   = false;

            _unitOfWork.EquipmentEmployeeRelations.Create(relation);
            _unitOfWork.Save();
        }
        public void UnsetOwner(Guid equipmentId)
        {
            EquipmentEmployeeRelation relation = _unitOfWork
                                                 .EquipmentEmployeeRelations
                                                 .Find(r => r.EquipmentId == equipmentId && r.IsOwner == true)
                                                 .FirstOrDefault();

            if (relation != null)
            {
                UpdateIsOwnerField(relation.Id, false);
            }
        }
        public void Delete(Guid id)
        {
            EquipmentEmployeeRelation relation = _unitOfWork.EquipmentEmployeeRelations.Get(id);

            if (relation == null)
            {
                throw new NotFoundException();
            }

            _unitOfWork.EquipmentEmployeeRelations.Delete(id);
            _unitOfWork.Save();
        }
        private void DeleteEquipmentRelation(Guid equipmentId, int employeeId)
        {
            EquipmentEmployeeRelation relation = _unitOfWork
                                                 .EquipmentEmployeeRelations
                                                 .Find(r => r.EquipmentId == equipmentId && r.EmployeeId == employeeId)
                                                 .FirstOrDefault();

            if (relation != null)
            {
                this.Delete(relation.Id);
            }
        }
        public EquipmentEmployeeRelationDTO GetByEquipmentAndEmployee(Guid equipmentId, int employeeId)
        {
            EquipmentEmployeeRelation relation = _unitOfWork
                                                 .EquipmentEmployeeRelations
                                                 .Find(r => r.EquipmentId == equipmentId &&
                                                       r.EmployeeId == employeeId)
                                                 .FirstOrDefault();

            if (relation == null)
            {
                throw new NotFoundException();
            }

            return(Mapper.Map <EquipmentEmployeeRelationDTO>(relation));
        }
        public EquipmentEmployeeRelationDTO Get(Guid id)
        {
            EquipmentEmployeeRelation relation = _unitOfWork.EquipmentEmployeeRelations.Get(id);

            return(Mapper.Map <EquipmentEmployeeRelationDTO>(relation));
        }