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); }
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); }