예제 #1
0
        public async Task <ResultModel <OperationTypeOutputModel> > InsertOperationType([FromBody] OperationTypeInputModel item)
        {
            var operationTypeItem = new OperationTypeModel()
            {
                Name        = item.Name,
                Description = item.Description,
                BranchId    = item.BranchId
            };

            var result = await _operationTypeStoreService.InsertAndSaveAsync <OperationTypeOutputModel>(operationTypeItem);

            item.Id = result.Result.Id;

            if (item.Equipments != null && result.Info.Succeeded)
            {
                await _operationTypeEquipmentStoreService.UpdateOperationTypeEquipmentsAsync(item);
            }

            if (item.OperatingRoomIds != null && result.Info.Succeeded)
            {
                await _operatingRoomOperationTypeStoreService.UpdateOperationTypeOperatingRoomsAsync(item);
            }

            return(result);
        }
        public async Task <ResultModel <OperationTypeOutputModel> > UpdateOperationTypeEquipmentsAsync(OperationTypeInputModel item)
        {
            var result = new ResultModel <OperationTypeOutputModel>
            {
                Info = new Info
                {
                    Succeeded = true
                }
            };

            var currentEquipments = await GetByOperationTypeIdAsync(item.Id);

            var equipmentIds      = currentEquipments.Select(x => x.EquipmentId);
            var addedEquipments   = item.Equipments.Except(equipmentIds);
            var removedEquipments = equipmentIds.Except(item.Equipments);

            foreach (var equipmentId in addedEquipments)
            {
                await InsertAsync(new OperationTypeEquipmentModel
                {
                    EquipmentId     = equipmentId,
                    OperationTypeId = item.Id
                });
            }

            foreach (var equipment in removedEquipments)
            {
                await DeleteByIdAsync(currentEquipments.First(x => x.OperationTypeId == item.Id && x.EquipmentId == equipment).Id);
            }

            await SaveChangesAsync();

            return(result);
        }
예제 #3
0
        public async Task <ResultModel <OperationTypeOutputModel> > UpdateOperationTypeOperatingRoomsAsync(OperationTypeInputModel item)
        {
            var result = new ResultModel <OperationTypeOutputModel>
            {
                Info = new Info
                {
                    Succeeded = true
                }
            };

            var currentOperatingRooms = await GetByOperationTypeIdAsync(item.Id);

            var operatingRoomIds      = currentOperatingRooms.Select(x => x.OperatingRoomId);
            var addedOperationRooms   = item.OperatingRoomIds.Except(operatingRoomIds);
            var removedOperationRooms = operatingRoomIds.Except(item.OperatingRoomIds);

            foreach (var operationRoomId in addedOperationRooms)
            {
                await InsertAsync(new OperatingRoomOperationTypeModel
                {
                    OperatingRoomId = operationRoomId,
                    OperationTypeId = item.Id
                });
            }

            foreach (var operationRoomId in removedOperationRooms)
            {
                await DeleteByIdAsync(currentOperatingRooms.First(x => x.OperationTypeId == item.Id && x.OperatingRoomId == operationRoomId).Id);
            }

            await SaveChangesAsync();

            return(result);
        }