public IEnumerable <CrmOperation> generateCrmOperationRequest(ExcelMatrix dataMatrix) { int optionValue; bool changeOrder = false; int indexorder = 0; int[] valuesOrder = new int[dataMatrix.numberofElements]; List <CrmOperation> crmOp = new List <CrmOperation>(); IEnumerable <int> currentValues = getDataMatrixValues(dataMatrix); for (int i = 0; i < dataMatrix.numberofElements; i++) { if (int.TryParse(dataMatrix.getElement(i, ExcelColumsDefinition.OPTIONSETVALUEEXCELCOL), out optionValue)) { int nOptionExcel = currentValues.Where(x => x == optionValue).Count(); if (nOptionExcel > 1) { crmOp.Add(new CrmOperation(CrmOperation.CrmOperationType.error, CrmOperation.CrmOperationTarget.none, null, string.Format("Error , duplicate OptionSet Value:{0}", optionValue))); } else if (nOptionExcel == 1) { IEnumerable <OptionMetadata> option = optionMetadata.optionData.Options.Where(x => x.Value.Value == optionValue); if (option.Count() == 0) { addOptionCreateRequest(dataMatrix.getRow(i), crmOp); } else { addOptionUpdateRequest(dataMatrix.getRow(i), crmOp, option.First()); } if (optionMetadata.optionData.Options.Count <= i || optionValue != optionMetadata.optionData.Options[i].Value) { changeOrder = true; } valuesOrder[indexorder++] = optionValue; } } else { crmOp.Add(new CrmOperation(CrmOperation.CrmOperationType.error, CrmOperation.CrmOperationTarget.none, null, string.Format("Error converting {0} to int", dataMatrix.getElement(i, ExcelColumsDefinition.OPTIONSETVALUEEXCELCOL)))); } } checkOptionToRemove(currentValues, crmOp); if (changeOrder) { addOptionOrderRequestRequest(crmOp, valuesOrder); } //check revoved option return(crmOp); }
public IEnumerable <int> getDataMatrixValues(ExcelMatrix dataMatrix) { int optionValue; List <int> listValues = new List <int>(); for (int i = 0; i < dataMatrix.numberofElements; i++) { if (int.TryParse(dataMatrix.getElement(i, ExcelColumsDefinition.OPTIONSETVALUEEXCELCOL), out optionValue)) { listValues.Add(optionValue); } } return(listValues); }
public IEnumerable <CrmOperation> generateCrmOperationRequest(ExcelMatrix dataMatrix) { List <CrmOperation> crmOp = new List <CrmOperation>(); for (int i = 0; i < dataMatrix.numberofElements; i++) { IEnumerable <AttributeMetadata> attribute = filteredMetadata.Where(x => x.SchemaName == dataMatrix.getElement(i, ExcelColumsDefinition.SCHEMANAMEEXCELCOL)); if (attribute.Count() == 0) { currentOperationCreate = true; addCreateRequest(dataMatrix.getRow(i), crmOp); } else if (attribute.Count() == 1) { currentOperationCreate = false; addUpdateRequest(dataMatrix.getRow(i), crmOp, attribute.First()); } } return(crmOp); }
public IEnumerable <CrmOperation> generateCrmOperationRequest(ExcelMatrix dataMatrix) { List <CrmOperation> crmOp = new List <CrmOperation>(); for (int i = 0; i < dataMatrix.numberofElements; i++) { IEnumerable <EntityMetadata> attribute = entitySheet.entitiesMetadata.Where(x => x.SchemaName == dataMatrix.getElement(i, ExcelColumsDefinition.ENTITYSCHEMANAMEEXCELCOL)); if (attribute.Count() == 0) { addCreateRequest(dataMatrix.getRow(i), crmOp); } else if (attribute.Count() == 1) { //update Entity } } return(crmOp); }