Exemplo n.º 1
0
 private void BtnRemove_Click(object sender, EventArgs e)
 {
     if (grdSet.SelectedRows.Count >= 1)
     {
         foreach (DataGridViewRow row in grdSet.SelectedRows)
         {
             SetItem removeItem = row.DataBoundItem as SetItem;
             listMaps.Items.Add(removeItem.MapName);
             SetItems.Remove(removeItem);
         }
     }
 }
Exemplo n.º 2
0
        private string CreateData(EntityCollection entityCollection, BackgroundWorker worker, SetItem setItem, string entityName)
        {
            var requestWithResults = new ExecuteMultipleRequest
            {
                Settings =
                    new ExecuteMultipleSettings
                {
                    ContinueOnError = false,
                    ReturnResponses = true
                },
                Requests = new OrganizationRequestCollection()
            };

            foreach (var entity in entityCollection.Entities)
            {
                if (entity.Attributes.Contains("statecode") && ((OptionSetValue)entity["statecode"]).Value >= 1) // inactive
                {
                    CreateInactiveRequest(entity);
                }
                else
                {
                    requestWithResults.Requests.Add(new CreateRequest {
                        Target = entity
                    });
                }
            }
            string errors = string.Empty;

            if (requestWithResults.Requests.Count > 0)
            {
                var responseWithResults =
                    (ExecuteMultipleResponse)Service.Execute(requestWithResults);

                ai.WriteEvent("Data Mocked Count", requestWithResults.Requests.Count);
                errors = responseWithResults.Responses.Where(responseItem => responseItem.Fault != null)
                         .Aggregate(errors, (accumulator, responseItem) => accumulator += "\r\n" +
                                                                                          responseItem.RequestIndex + " | " + responseItem.Fault);
                if (setItem != null)
                {
                    setItem.AddedValues
                    .AddRange(
                        from item in responseWithResults.Responses
                        .Where(ri => ri.Fault == null)
                        .Select(cr => ((CreateResponse)cr.Response))
                        select new Lookup {
                        guid = item.id, Name = item.id.ToString()
                    });
                    setItem.entityName = entityName;
                }
                //setItem.AddedValues.AddRange(responseWithResults.Responses.Select(ri => new Lookup(){guid = ((CreateResponse) ri.Response).)

                // else collection.Entities[responseItem.RequestIndex].Id = ((CreateResponse) responseItem.Response).id;
                //DisplayFault(requestWithResults.Requests[responseItem.RequestIndex],
                //    responseItem.RequestIndex, responseItem.Fault);
            }

            foreach (var updateEntity in updateEntities)
            {
                errors += SendInactiveRequest(updateEntity, worker, setItem, entityName);
            }

            return(errors);
            //  e.Result = errors;
        }
Exemplo n.º 3
0
        public string CreateAllData(int totalRecordCount, List <SimpleRow> maps, string entityName, BackgroundWorker wrker, SetItem setItem)
        {
            int initialCount     = totalRecordCount;
            int recordCount      = totalRecordCount > 500 ? 500 : totalRecordCount;
            int noRuns           = (int)Math.Ceiling((double)totalRecordCount / (double)recordCount);
            int percDone         = 0;
            var entityCollection = new EntityCollection {
                EntityName = entityName
            };
            var mockClass = new ExpandoObject();

            foreach (var map in maps)
            {
                ((IDictionary <string, object>)mockClass)[map.LogicalName] = map.SelectedMock;
            }

            wrker.ReportProgress(0, "Getting Mockaroo Data for " + entityName);
            var    client = new MockClient(txtMockKey.Text);
            string errors = string.Empty;

            if (collection != null && collection.Entities.Count > 0)
            {
                recordCount = collection.Entities.Count;
                wrker.ReportProgress(percDone, "Creating Sample Data");
                errors           += CreateData(collection, wrker, setItem, entityName);
                totalRecordCount -= recordCount;
                SendMessageToStatusBar?.Invoke(this, new StatusBarMessageEventArgs(
                                                   (int)Math.Round((double)(initialCount - totalRecordCount) * 100 / initialCount),
                                                   $"{totalRecordCount} {entityName} Records remaining"));
            }
            while (totalRecordCount > 0)
            {
                recordCount = totalRecordCount > 1000 ? 1000 : totalRecordCount;
                List <ExpandoObject> returnData = client.GetData(mockClass, recordCount);
                wrker.ReportProgress(percDone, "Got Data, Generating Entity Collection");
                foreach (List <ExpandoObject> subList in SplitList(returnData))
                {
                    entityCollection = CreateEntityCollection(subList, entityName, maps);
                    wrker.ReportProgress(percDone, "Retrieved Mockaroo Data, Creating in Dataverse");
                    percDone += 100 / noRuns;
                    errors   += CreateData(entityCollection, wrker, setItem, entityName);

                    totalRecordCount -= subList.Count();
                    SendMessageToStatusBar?.Invoke(this, new StatusBarMessageEventArgs(
                                                       (int)Math.Round((double)(initialCount - totalRecordCount) * 100 / initialCount),
                                                       $"{totalRecordCount} {entityName} Records remaining"));
                    wrker.ReportProgress(percDone, "Created Data");
                }
            }

            return(errors);
        }