Ejemplo n.º 1
0
        public dynamic Invoke(DynamicViewPoint point, InvokeMemberBinder binder, object[] args)
        {
            string location = point.Location;

            string idValue = args.Length == 1 ? Convert.ToString(args[0]) : "";

            GetDataRequest request = new GetDataRequest
                {
                    Credentials = GetCredentials(),
                    Filter = new DataFilter
                        {
                            Location = location,
                            Criteria = new [] {new FilterEntry {Name = "Id", Value = idValue}},
                        },
                    View = new GetDataView
                        {
                            Module = point.AmplaModule
                        },
                    OutputOptions = new GetDataOutputOptions
                        {
                            ResolveIdentifiers = true
                        },
                };
            GetDataResponse response = WebServiceClient.GetData(request);

            List<dynamic> records = new List<dynamic>();
            IAmplaBinding binding = new AmplaGetDataBinding(response, records);
            if (binding.Validate() && binding.Bind())
            {
                return records.FirstOrDefault();
            }
            return null;
        }
Ejemplo n.º 2
0
        public Task<List<SerializableDynamicObject>> GetDataAsync(Query query)
        {
            var request = new GetDataRequest
            {
                Query = query
            };

            return _requestTask.Get(request)
                               .Select(x => x.Results.ToList(), _scheduler.Task.TPL);
        }
Ejemplo n.º 3
0
        private GetDataRequest GetDataRequest(bool includeDefaultFilters, params FilterValue[] filters)
        {
            GetDataRequest request = new GetDataRequest
            {
                Credentials   = CreateCredentials(),
                Metadata      = true,
                OutputOptions = new GetDataOutputOptions
                {
                    ResolveIdentifiers = ModelProperties.ResolveIdentifiers,
                },
                Filter = GetDataFilter(includeDefaultFilters, filters),
                View   = new GetDataView
                {
                    Context = NavigationContext.Plant,
                    Mode    = NavigationMode.Location,
                    Module  = ModelProperties.Module
                }
            };

            return(request);
        }
        public void GetDataWithNoData()
        {
            SimpleDataWebServiceClient webServiceClient = Create();

            GetDataRequest request = new GetDataRequest
            {
                Credentials = CreateCredentials(),
                Filter      = new DataFilter {
                    Location = location
                },
                Metadata = true,
                // OutputOptions = new GetDataOutputOptions(),
                View = new GetDataView {
                    Module = AmplaModules.Production, Context = NavigationContext.Plant
                }
            };

            var response = webServiceClient.GetData(request);

            Assert.That(response.RowSets, Is.Not.Empty);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// GetDestinationFields
        /// </summary>
        /// <param name="pIntegrationProcessID"></param>
        /// <returns></returns>
        public List <IntegrationAdapterField> GetDestinationFields(int pIntegrationProcessID)
        {
            List <IntegrationAdapterField> list = null;

            try
            {
                IntegrationProcess process = base.AppRuntime.DataService.GetEntity(GetDataRequest <IntegrationProcess> .Create(c =>
                                                                                                                               c.IntegrationProcessID == pIntegrationProcessID,
                                                                                                                               "DestinationIntegrationAdapter.IntegrationAdapterFields"));

                if (process != null && process.DestinationIntegrationAdapter != null)
                {
                    list = process.DestinationIntegrationAdapter.IntegrationAdapterFields.ToList();
                }
            }
            catch (Exception ex)
            {
                LogManager.LogException(ex);
            }

            return(list);
        }
Ejemplo n.º 6
0
        //private readonly ILogger<DataService> _logger;

        //public DataService(ILogger<DataService> logger)
        //{
        //    _logger = logger;
        //}

        public override async Task <DataResponse> GetData(GetDataRequest request, ServerCallContext context)
        {
            var result = new List <DataProto>(4000);

            await foreach (var elem in DataLoader.GetData())
            {
                result.Add(new DataProto
                {
                    Id        = elem.Id,
                    IsActive  = elem.IsActive,
                    Name      = elem.Name ?? string.Empty,
                    Status    = GetGrpcStatus(elem.Status),
                    Arguments = { elem.Arguments.Select(x => new GrpcData.Argument {
                            First = x.First, Second = x.Second
                        }) }
                });
            }

            return(new DataResponse
            {
                Data = { result }
            });
        }
        public void GetDataWithNullOutputOptions()
        {
            SimpleDataWebServiceClient webServiceClient = Create();

            GetDataRequest request = new GetDataRequest
            {
                Credentials = CreateCredentials(),
                Filter      = new DataFilter {
                    Location = location, Criteria = new FilterEntry[0]
                },
                View = new GetDataView {
                    Context = NavigationContext.Plant, Mode = NavigationMode.Location, Module = AmplaModules.Production
                },
                Metadata      = false,
                OutputOptions = null
            };

            GetDataResponse response = webServiceClient.GetData(request);

            Assert.That(response.RowSets, Is.Not.Empty);
            Assert.That(response.RowSets[0].Columns, Is.Null);
            Assert.That(response.Context.ResolveIdentifiers, Is.False);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Build Integration Process GetDataRequest
        /// </summary>
        /// <param name="pProcessCode"></param>
        /// <returns></returns>
        public static GetDataRequest <IntegrationProcess> BuildIntegrationProcessGetDataRequest(string pProcessCode)
        {
            GetDataRequest <IntegrationProcess> getDataRequest = null;

            try
            {
                string[] integrationProcessIncludes =
                {
                    "SourceIntegrationAdapter.IntegrationAdapterFields",
                    "SourceIntegrationAdapter.ApplicationDatabaseQuery.ApplicationDatabas.Application",
                    "SourceIntegrationAdapter.ApplicationWebServiceRequest.ApplicationWebService.Application",
                    "DestinationIntegrationAdapter.IntegrationAdapterFields",
                    "DestinationIntegrationAdapter.ApplicationDatabaseQuery.ApplicationDatabas.Application",
                    "DestinationIntegrationAdapter.ApplicationWebServiceRequest.ApplicationWebService.Application"
                };

                getDataRequest = GetDataRequest <IntegrationProcess> .Create(c =>
                                                                             c.IntegrationProcessCode == pProcessCode, integrationProcessIncludes);
            }
            catch { throw; }

            return(getDataRequest);
        }
Ejemplo n.º 9
0
        public dynamic Invoke(DynamicViewPoint point, InvokeMemberBinder binder, object[] args)
        {
            string location = point.Location;

            string idValue = args.Length == 1 ? Convert.ToString(args[0]) : "";

            GetDataRequest request = new GetDataRequest
            {
                Credentials = GetCredentials(),
                Filter      = new DataFilter
                {
                    Location = location,
                    Criteria = new [] { new FilterEntry {
                                            Name = "Id", Value = idValue
                                        } },
                },
                View = new GetDataView
                {
                    Module = point.AmplaModule
                },
                OutputOptions = new GetDataOutputOptions
                {
                    ResolveIdentifiers = true
                },
            };
            GetDataResponse response = WebServiceClient.GetData(request);

            List <dynamic>         records         = new List <dynamic>();
            DynamicModelProperties modelProperties = new DynamicModelProperties(point);
            IAmplaBinding          binding         = new AmplaGetDataDynamicBinding(response, records, modelProperties);

            if (binding.Validate() && binding.Bind())
            {
                return(records.FirstOrDefault());
            }
            return(null);
        }
Ejemplo n.º 10
0
        public ActionResult GetData(int queryId, GetDataRequest req)
        {
            var query = db.Queries
                        .Include(q => q.DatabaseConnection)
                        .ThenInclude(c => c.SshKeyFile)
                        .FirstOrDefault(q => q.QueryID == queryId);

            if (query != null && CanUserAccessDatabase(query.DatabaseConnection))
            {
                var queryDefinition = JsonConvert.DeserializeObject <dynamic>(query.QueryDefinition);
                var nodes           = JsonConvert.SerializeObject(queryDefinition.Nodes);
                var selectedNodeId  = queryDefinition.SelectedNodeId.ToString();

                var data       = _dbMgr.GetData(query.DatabaseConnection, nodes, selectedNodeId, req.Start, req.Length);
                var rows       = data.Rows;
                var totalCount = data.RowCount;

                var dataTable = new { draw = req.Draw, recordsTotal = totalCount, recordsFiltered = totalCount, data = rows };

                return(Json(dataTable));
            }

            return(NotFound());
        }
Ejemplo n.º 11
0
        public static List <T> GetFilterWithPaging <T>(string serviceUrl, string serviceMethod, string tokenKey, List <string> filterParam, Method method = Method.POST) where T : BusinessObject // Return List Object
        {
            var content = "";

            try
            {
                var _client = new RestClient(serviceUrl);
                var request = new RestRequest(serviceMethod, method)
                {
                    RequestFormat = DataFormat.Json
                };
                GetDataRequest dataRequest = new GetDataRequest();

                if (!String.IsNullOrEmpty(tokenKey))
                {
                    request.AddHeader("tokenKey", tokenKey);
                }
                request.AddBody(dataRequest);
                var             response     = _client.Execute(request);
                GetDataResponse responseData = JsonConvert.DeserializeObject <GetDataResponse>(response.Content);
                content = responseData.Content.ToString();
                List <T> dataObject = new List <T>();
                if (responseData != null)
                {
                    DataTable dataTable = new DataTable();
                    if (responseData != null)
                    {
                        dataTable = JsonConvert.DeserializeObject <DataTable>(responseData.Content.ToString());
                        return(ConvertDataTableToListObject <T>(dataTable));
                    }
                }
            }
            catch (Exception ex)
            {}
            return(new List <T>());
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Return the data and the stat of the node of the given path.
        ///
        /// If the watch is non-null and the call is successful (no exception is
        /// thrown), a watch will be left on the node with the given path. The watch
        /// will be triggered by a successful operation that sets data on the node, or
        /// deletes the node.
        ///
        /// A KeeperException with error code KeeperException.NoNode will be thrown
        /// if no node with the given path exists.
        /// @param path the given path
        /// @param watcher explicit watcher
        /// @param stat the stat of the node
        /// @return the data of the node
        /// @throws KeeperException If the server signals an error with a non-zero error code
        /// @throws InterruptedException If the server transaction is interrupted.
        /// @throws IllegalArgumentException if an invalid path is specified
        /// </summary>
        public byte[] GetData(string path, IWatcher watcher, Stat stat)
        {
            string clientPath = path;

            PathUtils.ValidatePath(clientPath);

            // the watch contains the un-chroot path
            WatchRegistration wcb = null;

            if (watcher != null)
            {
                wcb = new DataWatchRegistration(watchManager, watcher, clientPath);
            }

            string serverPath = PrependChroot(clientPath);

            RequestHeader h = new RequestHeader();

            h.Type = (int)OpCode.GetData;
            GetDataRequest request = new GetDataRequest();

            request.Path  = serverPath;
            request.Watch = watcher != null;
            GetDataResponse response = new GetDataResponse();
            ReplyHeader     r        = cnxn.SubmitRequest(h, request, response, wcb);

            if (r.Err != 0)
            {
                throw KeeperException.Create((KeeperException.Code)Enum.ToObject(typeof(KeeperException.Code), r.Err), clientPath);
            }
            if (stat != null)
            {
                DataTree.CopyStat(response.Stat, stat);
            }
            return(response.Data);
        }
        private void LoadOrderDetail(EntityRef orderRef)
        {
            if (orderRef == null)
            {
                return;
            }

            Async.Request(
                this,
                (IBrowsePatientDataService service) =>
            {
                var request = new GetDataRequest
                {
                    GetOrderDetailRequest = new GetOrderDetailRequest(orderRef, true, true, false, false, true, false)
                    {
                        IncludeExtendedProperties = true
                    }
                };

                return(service.GetData(request));
            },
                response =>
            {
                _orderDetail = response.GetOrderDetailResponse.Order;

                UpdatePages();
                NotifyPropertyChanged("SelectedOrder");
                NotifyAllPropertiesChanged();
            },
                exception =>
            {
                ExceptionHandler.Report(exception, this.Host.DesktopWindow);
                NotifyPropertyChanged("SelectedOrder");
                NotifyAllPropertiesChanged();
            });
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Get Integration Adapter Fields
        /// </summary>
        /// <param name="pIntegrationAdapterID"></param>
        /// <returns></returns>
        public List <IntegrationAdapterField> GetIntegrationAdapterFields(int pIntegrationAdapterID)
        {
            List <IntegrationAdapterField> list = null;

            try
            {
                list = base.AppRuntime.DataService.GetAll(GetDataRequest <IntegrationAdapterField> .Create(c =>
                                                                                                           c.IntegrationAdapterID == pIntegrationAdapterID)).ToList();

                if (list != null && list.Count == 0)
                {
                    list.Add(new IntegrationAdapterField()
                    {
                        IsRowVisible = false
                    });
                }
            }
            catch (Exception ex)
            {
                LogManager.LogException(ex);
            }

            return(list);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Returns query with filter applied.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <param name="query">The query.</param>
        /// <param name="request">The request.</param>
        /// <returns>
        /// Query with filters and sorting applied.
        /// </returns>
        public static Tuple <IQueryable <TEntity>, IFutureValue <int> > ApplyFiltersWithChildren <TEntity>(this IQueryable <TEntity> query, GetDataRequest <TEntity> request)
            where TEntity : Entity
        {
            if (request != null)
            {
                // If paging is needed
                if (request.ItemsCount > 0)
                {
                    // At first, load ids
                    query = query
                            .ApplyFilters(request.Filter);

                    var futureValue = query.ToRowCountFutureValue(request);

                    var ids = query
                              .AddOrderAndPaging(request)
                              .Select(entity => entity.Id)
                              .ToList();

                    // Then load entities
                    query = query.Where(l => ids.Contains(l.Id));

                    return(new Tuple <IQueryable <TEntity>, IFutureValue <int> >(query, futureValue));
                }

                return(new Tuple <IQueryable <TEntity>, IFutureValue <int> >(query.ApplyFilters(request), null));
            }

            return(new Tuple <IQueryable <TEntity>, IFutureValue <int> >(query, null));
        }
Ejemplo n.º 16
0
        /// <summary>
        /// To the row count future value.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <param name="query">The query.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public static IFutureValue <int> ToRowCountFutureValue <TEntity>(this IQueryable <TEntity> query, GetDataRequest <TEntity> request)
            where TEntity : Entity
        {
            var hasPaging = (request == null || request.ItemsCount > 0);

            if (hasPaging)
            {
                return(query.ToRowCountFutureValue());
            }
            return(null);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Adds the order and paging.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <param name="query">The query.</param>
        /// <param name="request">The request.</param>
        /// <returns> Ordered and paged query </returns>
        public static IQueryable <TEntity> AddOrderAndPaging <TEntity>(this IQueryable <TEntity> query, GetDataRequest <TEntity> request)
            where TEntity : Entity
        {
            if (request != null)
            {
                query = query.AddOrder(request);
                query = query.AddPaging(request.StartItemNumber, request.ItemsCount);
            }

            return(query);
        }
Ejemplo n.º 18
0
        private void LoadReports()
        {
            Async.CancelPending(this);

            if (_context == null)
            {
                return;
            }

            Async.Request(
                this,
                (IBrowsePatientDataService service) =>
            {
                var request = new GetDataRequest
                {
                    ListReportsRequest         = new ListReportsRequest(null, _context.OrderRef),
                    ListPatientProfilesRequest = new ListPatientProfilesRequest(_context.PatientRef),
                    GetOrderDetailRequest      = new GetOrderDetailRequest(_context.OrderRef, false, true, false, false, false, false)
                };
                return(service.GetData(request));
            },
                response =>
            {
                var procedure = CollectionUtils.FirstElement(response.GetOrderDetailResponse.Order.Procedures);
                if (procedure != null)
                {
                    var facilityCode    = procedure.PerformingFacility.InformationAuthority.Code;
                    var matchingProfile = CollectionUtils.SelectFirst(
                        response.ListPatientProfilesResponse.Profiles,
                        summary => summary.Mrn.AssigningAuthority.Code == facilityCode);
                    _patientProfileRef = matchingProfile != null ? matchingProfile.PatientProfileRef : null;
                }

                var reports = new List <CommonReportListItem>();

                CollectionUtils.ForEach(response.ListReportsResponse.Reports,
                                        delegate(ReportListItem item)
                {
                    var existingItem = CollectionUtils.SelectFirst(reports, crli => Equals(crli.ReportRef, item.ReportRef));

                    if (existingItem != null)
                    {
                        existingItem.AddReportListItem(item);
                    }
                    else
                    {
                        reports.Add(new CommonReportListItem(item.ProcedureRef, item.ReportRef, item));
                    }
                });

                _reports        = reports;
                _selectedReport = CollectionUtils.FirstElement(_reports);

                OnReportSelectionChanged();
                NotifyAllPropertiesChanged();
            },
                exception =>
            {
                _reports        = new List <CommonReportListItem>();
                _selectedReport = null;
                ExceptionHandler.Report(exception, this.Host.DesktopWindow);

                OnReportSelectionChanged();
                NotifyAllPropertiesChanged();
            });
        }
Ejemplo n.º 19
0
        private GetDataRequest CreateGetRequest(string name, string propertyName, string urlFilter, string options,
                                                string filter, string paging, string sort, bool forCopy = false)
        {
            string filterActionName = null;
            string idValue          = null;
            var    filterItems      = new List <ClientFilterItem>();

            if (NotNullOrEmpty(urlFilter))
            {
                try
                {
                    filterItems.AddRange(JsonConvert.DeserializeObject <List <ClientFilterItem> >(urlFilter));
                }
                catch
                {
                    var    filterActions = DWKitRuntime.ServerActions.GetFilterNames().Where(n => n.Equals(urlFilter, StringComparison.OrdinalIgnoreCase)).ToList();
                    string filterAction  = null;
                    filterAction = filterActions.Count == 1 ? filterActions.First()
                        : filterActions.FirstOrDefault(n => n.Equals(urlFilter, StringComparison.Ordinal));

                    if (!string.IsNullOrEmpty(filterAction))
                    {
                        filterActionName = filterAction;
                    }
                    else
                    {
                        idValue = urlFilter;
                    }
                }
            }

            if (NotNullOrEmpty(filter))
            {
                filterItems.AddRange(JsonConvert.DeserializeObject <List <ClientFilterItem> >(filter, new JsonSerializerSettings
                {
                    DateParseHandling = DateParseHandling.None
                }));
            }


            var getRequest = new GetDataRequest(name)
            {
                PropertyName              = propertyName,
                FilterActionName          = filterActionName,
                IdValue                   = idValue,
                Filter                    = filterItems,
                BaseUrl                   = $"{Request.Scheme}://{Request.Host.Value}",
                ForCopy                   = forCopy,
                GetHeadersForLocalRequest = () =>
                {
                    var dataUrlParameters = new Dictionary <string, string>
                    {
                        {
                            "Cookie",
                            string.Join(";",
                                        Request.Cookies.Select(c => $"{c.Key}={c.Value}"))
                        }
                    };
                    return(dataUrlParameters);
                }
            };

            if (NotNullOrEmpty(options))
            {
                getRequest.OptionsDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(options);
            }

            if (NotNullOrEmpty(paging))
            {
                getRequest.Paging = JsonConvert.DeserializeObject <ClientPaging>(paging);
            }

            if (NotNullOrEmpty(sort))
            {
                getRequest.Sort = JsonConvert.DeserializeObject <List <ClienSortItem> >(sort);
            }

            return(getRequest);
        }
Ejemplo n.º 20
0
 public Task <GetDataResult> GetDataAsync(GetDataRequest request) =>
 throw new NotSupportedException();
Ejemplo n.º 21
0
        /// <summary>
        /// Insert IntegrationAdapter
        /// </summary>
        /// <param name="pEntity"></param>
        /// <returns></returns>
        public int InsertIntegrationAdapter(IntegrationAdapter pEntity)
        {
            int results = 0;

            try
            {
                DataUtilities.UpdateRecordAuditInfo(pEntity);
                base.AppRuntime.DataService.AddEntity(pEntity);
                results = base.AppRuntime.DataService.SaveChanges();

                if (pEntity.IntegrationAdapterID > 0)
                {
                    IntegrationProcess process = base.AppRuntime.DataService.GetEntity(GetDataRequest <IntegrationProcess> .Create(c =>
                                                                                                                                   c.IntegrationProcessID == this.IntegrationProcessID));

                    if (process != null)
                    {
                        if (this.IntegrationAdapterType == IntegrationChannelType.Source)
                        {
                            process.SourceIntegrationAdapterID = pEntity.IntegrationAdapterID;
                        }
                        else if (this.IntegrationAdapterType == IntegrationChannelType.Destination)
                        {
                            process.DestinationIntegrationAdapterID = pEntity.IntegrationAdapterID;
                        }

                        DataUtilities.UpdateRecordAuditInfo(process);
                        base.AppRuntime.DataService.UpdateEntity(process);
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.LogException(ex);
            }

            return(results);
        }
        public void GetData_ResolveIdentifiers_True()
        {
            InMemoryRecord record = DowntimeRecords.NewRecord().MarkAsNew();
            record.SetFieldIdValue("Cause", "Shutdown", 100);
            record.SetFieldIdValue("Classification", "Unplanned Process", 200);

            SimpleDataWebServiceClient webServiceClient = new SimpleDataWebServiceClient(record.Module,
                                                                                         record.Location);
            record.SaveTo(webServiceClient);

            Assert.That(webServiceClient.DatabaseRecords, Is.Not.Empty);

            string recordId = Convert.ToString(webServiceClient.DatabaseRecords[0].RecordId);

            GetDataRequest request = new GetDataRequest
                {
                    Credentials = CreateCredentials(),
                    Filter = new DataFilter {Location = record.Location, Criteria = new [] { new FilterEntry {Name = "Id", Value = recordId}}},
                    View = new GetDataView { Context = NavigationContext.Plant, Mode = NavigationMode.Location, Module = AmplaModules.Downtime},
                    Metadata = true,
                    OutputOptions = new GetDataOutputOptions {ResolveIdentifiers = true}
                };
            GetDataResponse response = webServiceClient.GetData(request);

            AssertResponseContainsValue(response, "Cause", "Shutdown");
            AssertResponseContainsValue(response, "Classification", "Unplanned Process");
        }
        public void GetDataWithNoMetaDataReturnsZeroColumns()
        {
            SimpleDataWebServiceClient webServiceClient = new SimpleDataWebServiceClient(module, location);
            webServiceClient.GetViewFunc = ProductionViews.StandardView;

            GetDataRequest request = new GetDataRequest
            {
                Credentials = CreateCredentials(),
                Filter = new DataFilter { Location = location, Criteria = new FilterEntry[0] },
                View = new GetDataView { Context = NavigationContext.Plant, Mode = NavigationMode.Location, Module = AmplaModules.Production },
                Metadata = false,
                OutputOptions = new GetDataOutputOptions { ResolveIdentifiers = false },
            };

            GetDataResponse response = webServiceClient.GetData(request);
            Assert.That(response.RowSets, Is.Not.Empty);
            Assert.That(response.RowSets[0].Columns, Is.Null);
        }
        public void GetDataReturnsLocation()
        {
            SimpleDataWebServiceClient webServiceClient = new SimpleDataWebServiceClient(module, location);

            InMemoryRecord record = ProductionRecords.NewRecord().MarkAsNew();

            SubmitDataRequest submitRequest = new SubmitDataRequest
            {
                Credentials = CreateCredentials(),
                SubmitDataRecords = new[]
                    {
                        record.ConvertToSubmitDataRecord()
                    }
            };
            SubmitDataResponse submitResponse = webServiceClient.SubmitData(submitRequest);
            Assert.That(submitResponse.DataSubmissionResults, Is.Not.Null);
            Assert.That(submitResponse.DataSubmissionResults.Length, Is.EqualTo(1));
            Assert.That(submitResponse.DataSubmissionResults[0].RecordAction, Is.EqualTo(RecordAction.Insert));
            Assert.That(submitResponse.DataSubmissionResults[0].SetId, Is.GreaterThan(100));

            string recordId = Convert.ToString(submitResponse.DataSubmissionResults[0].SetId);
            Assert.That(webServiceClient.DatabaseRecords.Count, Is.EqualTo(1));

            Assert.That(webServiceClient.DatabaseRecords[0].Location, Is.EqualTo(location));

            GetDataRequest request = new GetDataRequest
            {
                Credentials = CreateCredentials(),
                Filter = new DataFilter { Location = record.Location, Criteria = new[] { new FilterEntry { Name = "Id", Value = recordId } } },
                View = new GetDataView { Context = NavigationContext.Plant, Mode = NavigationMode.Location, Module = AmplaModules.Production },
                Metadata = true,
                OutputOptions = new GetDataOutputOptions { ResolveIdentifiers = false },
            };
            GetDataResponse response = webServiceClient.GetData(request);

            AssertResponseContainsValue(response, "Duration", "90");
            AssertResponseContainsValue(response, "Location", location);
        }
Ejemplo n.º 25
0
 public IAsyncEnumerable <GetDataResponse> GetDataAsync(GetDataRequest request)
 {
     return(_serverService.GetData(request));
 }
Ejemplo n.º 26
0
        /// <summary>
        /// Gets the data.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public GetDataResponse GetData(GetDataRequest request)
        {
            return(TryCatchThrowFault(() =>
            {
                XmlDocument xmlDoc = new XmlDocument();

                CheckCredentials(request.Credentials);

                InMemoryFilterMatcher filterMatcher = new InMemoryFilterMatcher(request.Filter);

                List <InMemoryRecord> recordsToReturn = new List <InMemoryRecord>();

                Dictionary <int, InMemoryRecord> database = amplaDatabase.GetModuleRecords(request.View.Module.ToString());

                if (database.Count > 0)
                {
                    recordsToReturn = database.Values.Where(filterMatcher.Matches).ToList();
                }
                bool resolveIdentifiers = request.OutputOptions != null && request.OutputOptions.ResolveIdentifiers;

                List <Row> rows = new List <Row>();
                foreach (InMemoryRecord record in recordsToReturn)
                {
                    Row row = new Row {
                        id = Convert.ToString(record.RecordId)
                    };
                    List <XmlElement> values = new List <XmlElement>();
                    foreach (FieldValue value in record.Fields)
                    {
                        string name = XmlConvert.EncodeName(value.Name);
                        XmlElement element = xmlDoc.CreateElement(name, "http://www.citect.com/Ampla/Data/2008/06");
                        element.InnerText = value.ResolveValue(resolveIdentifiers);
                        values.Add(element);
                    }
                    row.Any = values.ToArray();
                    rows.Add(row);
                }

                string module = request.View.Module.ToString();
                string location = request.Filter.Location;
                GetDataResponse response = new GetDataResponse
                {
                    Context = new GetDataResponseContext
                    {
                        Context = request.View.Context,
                        Metadata = request.Metadata,
                        Mode = request.View.Mode,
                        Module = request.View.Module,
                        ResolveIdentifiers = resolveIdentifiers,
                        ViewName = request.View.Name,
                        Fields = request.View.Fields,
                        ModelFields = request.View.ModelFields,
                    },
                    RowSets = new[]
                    {
                        new RowSet
                        {
                            Rows = rows.ToArray(),
                            Columns = request.Metadata ? GetColumns(module, location) : null
                        }
                    }
                };

                return response;
            }));
        }
Ejemplo n.º 27
0
        public async Task <ActionResult> GetData(string name, string control, string urlFilter, string options,
                                                 string filter, string paging, string sort)
        {
            try
            {
                if (!await DWKitRuntime.Security.CheckFormPermission(name, "View"))
                {
                    throw new Exception("Access denied!");
                }

                string filterActionName = null;
                string idValue          = null;
                var    filterItems      = new List <ClientFilterItem>();

                if (NotNullOrEmpty(urlFilter))
                {
                    try
                    {
                        filterItems.AddRange(JsonConvert.DeserializeObject <List <ClientFilterItem> >(urlFilter));
                    }
                    catch
                    {
                        if (DWKitRuntime.ServerActions.ContainsFilter(urlFilter))
                        {
                            filterActionName = urlFilter;
                        }
                        else
                        {
                            idValue = urlFilter;
                        }
                    }
                }

                if (NotNullOrEmpty(filter))
                {
                    filterItems.AddRange(JsonConvert.DeserializeObject <List <ClientFilterItem> >(filter));
                }

                var getRequest = new GetDataRequest(name)
                {
                    RequestingControlName = control,
                    FilterActionName      = filterActionName,
                    IdValue = idValue,
                    Filter  = filterItems
                };

                if (NotNullOrEmpty(options))
                {
                    getRequest.OptionsDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(options);
                }

                if (NotNullOrEmpty(paging))
                {
                    getRequest.Paging = JsonConvert.DeserializeObject <ClientPaging>(paging);
                }

                if (NotNullOrEmpty(sort))
                {
                    getRequest.Sort = JsonConvert.DeserializeObject <List <ClienSortItem> >(sort);
                }

                var data = await DataSource.GetDataForFormAsync(getRequest).ConfigureAwait(false);

                return(Json(new ItemSuccessResponse <object>(data.ToDictionary(true))));
            }
            catch (Exception e)
            {
                return(Json(new FailResponse(e)));
            }
        }
Ejemplo n.º 28
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            var tables = await _metadataRepository.GetTablesAsync();

            var foreignKeys = await _metadataRepository.GetForeignKeysAsync();

            foreach (var table in tables)
            {
                if (table.PrimaryKeyType != "uniqueidentifier")
                {
                    continue;
                }

                Console.Write($"Updating {table.Name}  ");

                var stopwatch = Stopwatch.StartNew();

                var references = foreignKeys.Where(x => x.PrimaryTableId == table.Id && x.PrimaryColumnId == table.PrimaryKeyId).ToList();
                await DisableForeignKeys(references);

                var dataRequest = new GetDataRequest
                {
                    SchemaName = table.Schema,
                    TableName  = table.Name,
                    ColumnName = table.PrimaryKeyName
                };

                var data = await _dataRepository.GetDataAsync(dataRequest);

                var(cursorLeft, cursorTop) = Console.GetCursorPosition();
                var count = 0;
                foreach (var id in data)
                {
                    count++;
                    if (count % 50 == 0)
                    {
                        Console.SetCursorPosition(cursorLeft, cursorTop);
                        Console.Write($"{count}");
                    }

                    var newId = SequentialGuid.NewGuid();

                    var updateIdRequest = new UpdateColumnRequest
                    {
                        SchemaName = table.Schema,
                        TableName  = table.Name,
                        ColumnName = table.PrimaryKeyName,
                        OldValue   = id,
                        NewValue   = newId
                    };

                    await _dataRepository.UpdateColumnAsync(updateIdRequest);

                    foreach (var fk in references)
                    {
                        var updateKeyRequest = new UpdateColumnRequest
                        {
                            SchemaName = fk.ForeignSchemaName,
                            TableName  = fk.ForeignTableName,
                            ColumnName = fk.ForeignColumnName,
                            OldValue   = id,
                            NewValue   = newId
                        };

                        await _dataRepository.UpdateColumnAsync(updateKeyRequest);
                    }
                }

                await EnableForeignKeys(references);

                stopwatch.Stop();
                Console.SetCursorPosition(cursorLeft, cursorTop);
                Console.WriteLine($" Done ({stopwatch.Elapsed})");
            }

            _appLifetime.StopApplication();
        }
 /// <inheritdoc />
 public Task <GetDataResult> GetDataAsync(GetDataRequest request) =>
 ExecuteOperation(new GetDataOperation(request, watcherWrapper));
Ejemplo n.º 30
0
        public async Task <ActionResult> GetData(string name, string control, string urlFilter, string options,
                                                 string filter, string paging, string sort, bool forCopy = false)
        {
            try
            {
                if (!await DWKitRuntime.Security.CheckFormPermissionAsync(name, "View"))
                {
                    throw new Exception("Access denied!");
                }

                string filterActionName = null;
                string idValue          = null;
                var    filterItems      = new List <ClientFilterItem>();

                if (NotNullOrEmpty(urlFilter))
                {
                    try
                    {
                        filterItems.AddRange(JsonConvert.DeserializeObject <List <ClientFilterItem> >(urlFilter));
                    }
                    catch
                    {
                        var    filterActions = DWKitRuntime.ServerActions.GetFilterNames().Where(n => n.Equals(urlFilter, StringComparison.OrdinalIgnoreCase)).ToList();
                        string filterAction  = null;
                        filterAction = filterActions.Count == 1 ? filterActions.First()
                            : filterActions.FirstOrDefault(n => n.Equals(urlFilter, StringComparison.Ordinal));

                        if (!string.IsNullOrEmpty(filterAction))
                        {
                            filterActionName = filterAction;
                        }
                        else
                        {
                            idValue = urlFilter;
                        }
                    }
                }

                if (NotNullOrEmpty(filter))
                {
                    filterItems.AddRange(JsonConvert.DeserializeObject <List <ClientFilterItem> >(filter, new JsonSerializerSettings
                    {
                        DateParseHandling = DateParseHandling.None
                    }));
                }


                var getRequest = new GetDataRequest(name)
                {
                    RequestingControlName = control,
                    FilterActionName      = filterActionName,
                    IdValue = idValue,
                    Filter  = filterItems,
                    BaseUrl = $"{Request.Scheme}://{Request.Host.Value}",
                    ForCopy = forCopy,
                    GetHeadersForLocalRequest = () =>
                    {
                        var dataUrlParameters = new Dictionary <string, string>
                        {
                            {
                                "Cookie",
                                string.Join(";",
                                            Request.Cookies.Select(c => $"{c.Key}={c.Value}"))
                            }
                        };
                        return(dataUrlParameters);
                    }
                };

                if (NotNullOrEmpty(options))
                {
                    getRequest.OptionsDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(options);
                }

                if (NotNullOrEmpty(paging))
                {
                    getRequest.Paging = JsonConvert.DeserializeObject <ClientPaging>(paging);
                }

                if (NotNullOrEmpty(sort))
                {
                    getRequest.Sort = JsonConvert.DeserializeObject <List <ClienSortItem> >(sort);
                }

                var data = await DataSource.GetDataForFormAsync(getRequest).ConfigureAwait(false);

                if (data.IsFromUrl && FailResponse.IsFailResponse(data.Entity, out FailResponse fail))
                {
                    return(Json(fail));
                }

                var result = data.Entity != null?data.Entity.ToDictionary(true) : new object();

                return(Json(new ItemSuccessResponse <object>(result)));
            }
            catch (Exception e)
            {
                return(Json(new FailResponse(e)));
            }
        }
Ejemplo n.º 31
0
 public IAsyncEnumerable <GetDataResponse> GetData(GetDataRequest request)
 {
     VertifyTokenAsync().Wait();
     return(_server.GetDataAsync(request));
 }
 /// <inheritdoc cref="IZooKeeperClient.GetDataAsync"/>
 public static GetDataResult GetData(this IZooKeeperClient client, GetDataRequest request) =>
 client.GetDataAsync(request).GetAwaiter().GetResult();
Ejemplo n.º 33
0
        /// <summary>
        ///     Build Adapter Cache Results
        /// </summary>
        /// <param name="pSourceAdapterResponse"></param>
        /// <returns>Integration Adapter Cache Result</returns>
        internal List <AdapterCacheResult> BuildAdapterCacheResults(SourceAdapterResponse pSourceAdapterResponse)
        {
            List <AdapterCacheResult>     queryCacheResults = null;
            List <IntegrationAdapterCach> tempCache         = null;
            List <string> sourceResultsKeys = null;
            bool          needSaveChanges   = false;

            try
            {
                Parallel.ForEach(pSourceAdapterResponse.Results, recordInfo =>
                {
                    recordInfo.DbRecordKey = this.BuildRecordCompositeKey(pSourceAdapterResponse.AdapterPrimaryKeys, recordInfo);
                });

                sourceResultsKeys = pSourceAdapterResponse.Results
                                    .Select(c => c.DbRecordKey)
                                    .Where(c => c.IsValidString()).ToList();

                if (sourceResultsKeys != null && sourceResultsKeys.Count > 0)
                {
                    tempCache = base.AppRuntime.DataService.GetAll(GetDataRequest <IntegrationAdapterCach> .Create(c =>
                                                                                                                   c.IntegrationAdapterID == pSourceAdapterResponse.AdapterMetadata.IntegrationAdapterID &&
                                                                                                                   sourceResultsKeys.Contains(c.CachePrimaryKeys))).ToList();

                    if (tempCache != null)
                    {
                        queryCacheResults = new List <AdapterCacheResult>();

                        foreach (DBRecordInfo recordInfo in pSourceAdapterResponse.Results.Where(c =>
                                                                                                 c.DbRecordKey.IsValidString()))
                        {
                            IntegrationAdapterCach cacheItem = tempCache.FirstOrDefault(c =>
                                                                                        c.CachePrimaryKeys == recordInfo.DbRecordKey);

                            if (cacheItem != null)
                            {
                                if (cacheItem.CacheStatus == RecordCacheStatus.InQueue.GetValue <Byte>() ||
                                    cacheItem.CacheStatus == RecordCacheStatus.Failed.GetValue <Byte>())
                                {
                                    cacheItem.CacheStatus = RecordCacheStatus.InQueue.GetValue <Byte>();
                                    base.AppRuntime.DataService.ApplyEntityChanges(cacheItem);
                                    needSaveChanges = true;

                                    queryCacheResults.Add(new AdapterCacheResult()
                                    {
                                        DBRecordCache = cacheItem,
                                        DBRecord      = recordInfo
                                    });
                                }
                                else if (cacheItem.CacheStatus == RecordCacheStatus.Succeeded.GetValue <Byte>())
                                {
                                    //Record Ignored: because the record has been moved successfully in earlier transaction
                                }
                            }
                            else
                            {
                                cacheItem = new IntegrationAdapterCach()
                                {
                                    IntegrationAdapterID = pSourceAdapterResponse.AdapterMetadata.IntegrationAdapterID,
                                    CachePrimaryKeys     = recordInfo.DbRecordKey,
                                    CacheStatus          = RecordCacheStatus.InQueue.GetValue <Byte>(),
                                    Description          = string.Format("{0}-{1}",
                                                                         pSourceAdapterResponse.AdapterMetadata.IntegrationAdapterID,
                                                                         recordInfo.DbRecordKey),
                                    RecordStatus       = (int)RecordAuditStatus.Active,
                                    RecordCreated      = DateTime.Now,
                                    RecordCreatedBy    = Constants.SystemUser,
                                    RecordLastUpdate   = DateTime.Now,
                                    RecordLastUpdateBy = Constants.SystemUser,
                                };

                                base.AppRuntime.DataService.AddEntity(cacheItem);
                                needSaveChanges = true;

                                queryCacheResults.Add(new AdapterCacheResult()
                                {
                                    DBRecordCache = cacheItem,
                                    DBRecord      = recordInfo
                                });
                            }
                        }

                        if (needSaveChanges)
                        {
                            base.AppRuntime.DataService.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.LogException(ex);
            }
            finally
            {
                tempCache         = null;
                sourceResultsKeys = null;
            }

            return(queryCacheResults);
        }
Ejemplo n.º 34
0
 public GetDataResponse GetData(GetDataRequest request)
 {
     return(Create().GetData(request));
 }
Ejemplo n.º 35
0
        public async Task <List <RequestDto> > Handle(GetDataRequest request, CancellationToken cancellationToken)
        {
            var requests = await _uow.RequestsRepository.GetAllAsync();

            return(_mapper.Map <List <RequestDto> >(requests));
        }