public async Task <IActionResult> UpdateById(long id, BranchReceivingDTO branchReceiving)
        {
            var response = await _branchService.UpdateBranch(id, branchReceiving);

            if (response.StatusCode >= 400)
            {
                return(StatusCode(response.StatusCode, response));
            }
            var branch = ((ApiOkResponse)response).Result;

            return(Ok((BranchTransferDTO)branch));
        }
        public async Task <ActionResult> AddNewBranch(BranchReceivingDTO branchReceiving)
        {
            var response = await _branchService.AddBranch(branchReceiving);

            if (response.StatusCode >= 400)
            {
                return(StatusCode(response.StatusCode, response));
            }
            var branch = ((ApiOkResponse)response).Result;

            return(Ok((BranchTransferDTO)branch));
        }
        public async Task <ApiResponse> AddBranch(BranchReceivingDTO branchReceivingDTO)
        {
            var branch      = _mapper.Map <Branch>(branchReceivingDTO);
            var savedBranch = await _branchRepo.SaveBranch(branch);

            if (savedBranch == null)
            {
                return(new ApiResponse(500));
            }
            var branchTransferDTOs = _mapper.Map <BranchTransferDTO>(branch);

            return(new ApiOkResponse(branchTransferDTOs));
        }
        public async Task <ApiResponse> UpdateBranch(long id, BranchReceivingDTO branchReceivingDTO)
        {
            var branchToUpdate = await _branchRepo.FindBranchById(id);

            if (branchToUpdate == null)
            {
                return(new ApiResponse(404));
            }
            branchToUpdate.Name        = branchReceivingDTO.Name;
            branchToUpdate.Description = branchReceivingDTO.Description;
            branchToUpdate.Address     = branchReceivingDTO.Address;
            branchToUpdate.HeadId      = branchReceivingDTO.HeadId;
            var updatedBranch = await _branchRepo.UpdateBranch(branchToUpdate);

            if (updatedBranch == null)
            {
                return(new ApiResponse(500));
            }
            var branchTransferDTOs = _mapper.Map <BranchTransferDTO>(updatedBranch);

            return(new ApiOkResponse(branchTransferDTOs));
        }