public IApoSubClassDataTranferObject GetByName(IApoSubClassForCreateOrEdit item)
        {
            var selectedApoClass = _apoSubClassRepository.GetByName(item);

            if (selectedApoClass == null)
            {
                return(null);
            }

            var mapToDto = Mapper.Map <ApoSubClassDto>(selectedApoClass);

            MapDeptToDto(mapToDto);


            return(mapToDto);
        }
        public IApoSubClassDataTranferObject Create(IApoSubClassForCreateOrEdit item)
        {
            var mapToDomain = Mapper.Map <ApoSubClassDomain>(item);


            if (_apoSubClassRepository.GetByName(item) != null)
            {
                throw new ArgumentException($"Name {item.Name} is Already exist.");
            }

            var apoGroupFromRepository = _apoSubClassRepository.Add(mapToDomain);

            var mapToDto = Mapper.Map <ApoSubClassDto>(apoGroupFromRepository);

            MapDeptToDto(mapToDto);

            return(mapToDto);
        }
        public IApoSubClassDataTranferObject Edit(int id, IApoSubClassForCreateOrEdit item)
        {
            var mapToDomain = Mapper.Map <ApoSubClassDomain>(item);

            var selectedApoClass = _apoSubClassRepository.GetByName(item);

            if (selectedApoClass != null &&
                selectedApoClass.Name.ToLowerInvariant().Equals(item.Name.Trim().ToLowerInvariant()) &&
                id != selectedApoClass.Id)
            {
                throw new ArgumentException($"Name {item.Name} is Already exist.");
            }

            var apoClassFromRepository = _apoSubClassRepository.Update(id, mapToDomain);

            var mapToDto = Mapper.Map <ApoSubClassDto>(apoClassFromRepository);

            MapDeptToDto(mapToDto);

            return(mapToDto);
        }