Exemple #1
0
        public async Task <ResultModel <OperatingRoomOutputModel> > UpdateOperatingRoomOperationTypesAsync(OperatingRoomInputModel item)
        {
            var result = new ResultModel <OperatingRoomOutputModel>
            {
                Info = new Info
                {
                    Succeeded = true
                }
            };

            var currentoperationTypes = await _operatingRoomOperationTypeStoreService.GetByOperatingRoomIdAsync(item.Id);

            var operationTypeIds      = currentoperationTypes.Select(x => x.OperationTypeId);
            var addedOperationTypes   = item.OperationTypes.Except(operationTypeIds);
            var removedOperationTypes = operationTypeIds.Except(item.OperationTypes);

            foreach (var operationTypeId in addedOperationTypes)
            {
                await _operatingRoomOperationTypeStoreService.InsertAsync(new OperatingRoomOperationTypeModel
                {
                    OperationTypeId = operationTypeId,
                    OperatingRoomId = item.Id
                });
            }

            foreach (var operationType in removedOperationTypes)
            {
                await _operatingRoomOperationTypeStoreService.DeleteByIdAsync(currentoperationTypes.First(x => x.OperatingRoomId == item.Id && x.OperationTypeId == operationType).Id);
            }

            await _operatingRoomOperationTypeStoreService.SaveChangesAsync();

            return(result);
        }