Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMResultRow"/> class.
 /// </summary>
 /// <param name="databaseRow">
 /// The database row.
 /// </param>
 /// <param name="result">
 /// The result.
 /// </param>
 public UPCRMResultRow(DatabaseRow databaseRow, UPCRMResult result)
 {
     this.Result          = result;
     this.databaseRow     = databaseRow;
     this.serverData      = null;
     this.serverRecordIds = null;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Loads the with result.
 /// </summary>
 /// <param name="result">The result.</param>
 /// <returns></returns>
 public override bool LoadWithResult(UPCRMResult result)
 {
     this.Value = result.RowCount.ToString();
     this.Text  = this.titleText;
     this.Tiles.TileFinished(this);
     return(true);
 }
Exemplo n.º 3
0
        /// <summary>
        /// Searches the operation did finish with result.
        /// </summary>
        /// <param name="operation">The operation.</param>
        /// <param name="result">The result.</param>
        public virtual void SearchOperationDidFinishWithResult(Operation operation, UPCRMResult result)
        {
            int count = result.RowCount;

            for (int i = 0; i < count; i++)
            {
                UPCRMResultRow resultRow = (UPCRMResultRow)result.ResultRowAtIndex(i);
                var            rowValues = resultRow.ValuesWithFunctions();

                string rep   = (string)rowValues.ValueOrDefault(Constants.UPRepAcceptanceFunctionName_RepId);
                int    repId = rep.ToInt();

                if (repId > 0)
                {
                    rep = StringExtensions.NineDigitStringFromRep(Convert.ToInt32(rep));

                    var repParticipant = this.ParticipantWithKey(rep);

                    if (repParticipant is UPCRMRepParticipant)
                    {
                        string acceptance = (string)rowValues[Constants.UPRepAcceptanceFunctionName_Acceptance];
                        ((UPCRMRepParticipant)repParticipant).AcceptanceFromRecordIdentification(acceptance, resultRow.RootRecordIdentification);
                    }
                }
            }

            this.repAcceptanceCrmQuery = null;
            this.Loaded();
        }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMResultRow"/> class.
 /// </summary>
 /// <param name="newRecordIdentification">
 /// The new record identification.
 /// </param>
 /// <param name="result">
 /// The result.
 /// </param>
 public UPCRMResultRow(string newRecordIdentification, UPCRMResult result)
 {
     this.Result                  = result;
     this.databaseRow             = null;
     this.serverData              = null;
     this.serverRecordIds         = null;
     this.newRecordIdentification = newRecordIdentification;
 }
Exemplo n.º 5
0
        /// <summary>
        /// Loads the with result.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <returns></returns>
        public override bool LoadWithResult(UPCRMResult result)
        {
            if (result.RowCount > 0)
            {
                return(this.LoadWithResultRow((UPCRMResultRow)result.ResultRowAtIndex(0)));
            }

            return(false);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMResultRow"/> class.
 /// </summary>
 /// <param name="rowServerResponse">
 /// The row server response.
 /// </param>
 /// <param name="result">
 /// The result.
 /// </param>
 public UPCRMResultRow(List <object> rowServerResponse, UPCRMResult result)
 {
     this.Result          = result;
     this.databaseRow     = null;
     this.serverData      = rowServerResponse[1] as List <object>;
     this.serverRecordIds =
         (rowServerResponse[0] as List <string> ?? (rowServerResponse[0] as List <object>)?.Cast <string>())
         ?.ToList();
 }
Exemplo n.º 7
0
        /// <summary>
        /// The start.
        /// </summary>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        public bool Start()
        {
            this.linkContexts        = this.LinkReaderContextsForParentLinkString(this.ParentLinkString);
            this.queryWithLinkRecord = false;
            if (this.linkContexts.Count == 1)
            {
                UPCRMLinkReaderLinkContext context = this.linkContexts[0];
                if (context.LinkInfo.IsGeneric)
                {
                    this.crmQuery            = this.QueryForLinkLinkRecord(context.LinkInfo, this.SourceRecordIdentification);
                    this.queryWithLinkRecord = true;
                }
            }

            if (!this.queryWithLinkRecord)
            {
                foreach (UPCRMLinkReaderLinkContext context in this.linkContexts)
                {
                    if (context.LinkInfo.LinkId <= 0 && context.LinkInfo.TargetInfoAreaId.Equals(this.InfoAreaId))
                    {
                        this.DestinationRecordIdentification = this.SourceRecordIdentification;
                        this.TheDelegate?.LinkReaderDidFinishWithResult(this, this.SourceRecordIdentification);

                        return(true);
                    }
                }

                this.crmQuery = this.ClientQuery();
            }

            if (this.RequestOption == UPRequestOption.FastestAvailable || this.RequestOption == UPRequestOption.Offline)
            {
                UPCRMResult result = this.crmQuery.Find();
                if (result.RowCount > 0)
                {
                    UPContainerMetaInfo crmQuery = this.crmQuery;
                    this.JustCall(crmQuery);
                    this.crmQuery = null;
                    this.HandleResultClient(result, true);
                    return(true);
                }
            }

            if (this.RequestOption != UPRequestOption.Offline)
            {
                if (!this.queryWithLinkRecord)
                {
                    this.crmQuery = this.ServerQuery();
                }

                this.crmQuery.Find(this);
                return(true);
            }

            return(false);
        }
Exemplo n.º 8
0
 /// <summary>
 /// Searches the operation did finish with result.
 /// </summary>
 /// <param name="operation">The operation.</param>
 /// <param name="result">The result.</param>
 public void SearchOperationDidFinishWithResult(Operation operation, UPCRMResult result)
 {
     if (result.RowCount == 0)
     {
         this.Tiles.TileFinishedWithError(this, new Exception($"Record Not found: {this.recordIdentification}"));
     }
     else
     {
         this.LoadWithResultRow((UPCRMResultRow)result.ResultRowAtIndex(0));
     }
 }
Exemplo n.º 9
0
        /// <summary>
        /// The read link record identification from row.
        /// </summary>
        /// <param name="row">
        /// The row.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public string ReadLinkRecordIdentificationFromRow(UPCRMResultRow row)
        {
            if (!this.LinkInfo.UseLinkFields)
            {
                return(null);
            }

            int    nextIndex              = this.StartingPosition;
            string targetInfoAreaId       = this.LinkInfo.TargetInfoAreaId;
            UPContainerMetaInfo query     = new UPContainerMetaInfo(new List <UPCRMField>(), targetInfoAreaId);
            UPInfoAreaCondition condition = null;

            foreach (UPCRMLinkInfoField linkInfoField in this.LinkInfo.LinkFieldArray)
            {
                UPInfoAreaCondition leaf;
                if (linkInfoField.FieldId >= 0)
                {
                    string value = row.RawValueAtIndex(nextIndex++);
                    if (linkInfoField.TargetFieldId < 0)
                    {
                        if (!value.Equals(linkInfoField.TargetValue))
                        {
                            return(null);
                        }
                    }

                    leaf = new UPInfoAreaConditionLeaf(targetInfoAreaId, linkInfoField.TargetFieldId, value);
                }
                else
                {
                    leaf = new UPInfoAreaConditionLeaf(
                        targetInfoAreaId,
                        linkInfoField.TargetFieldId,
                        linkInfoField.SourceValue);
                }

                condition = condition != null?condition.InfoAreaConditionByAppendingAndCondition(leaf) : leaf;
            }

            if (condition != null)
            {
                query.RootInfoAreaMetaInfo.AddCondition(condition);
            }

            UPCRMResult result = query.Find();

            if (result.RowCount >= 1)
            {
                return(((UPCRMResultRow)result.ResultRowAtIndex(0)).RootRecordIdentification);
            }

            return(null);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Searches the operation did finish with result.
        /// </summary>
        /// <param name="operation">The operation.</param>
        /// <param name="result">The result.</param>
        public override void SearchOperationDidFinishWithResult(Operation operation, UPCRMResult result)
        {
            if (this.crmQuery != null)
            {
                int count         = result.RowCount;
                int infoAreaCount = result.MetaInfo.NumberOfResultInfoAreaMetaInfos();

                for (int i = 0; i < count; i++)
                {
                    UPCRMResultRow resultRow = (UPCRMResultRow)result.ResultRowAtIndex(i);

                    for (int j = 1; j < infoAreaCount; j++)
                    {
                        string linkRecordIdentification = resultRow.RecordIdentificationAtIndex(j);
                        if (linkRecordIdentification?.Length > 6)
                        {
                            UPCRMLinkParticipant linkParticipant = new UPCRMLinkParticipant(resultRow, j);
                            this.AddLinkParticipant(linkParticipant);

                            if (!string.IsNullOrEmpty(this.ProtectedLinkRecordIdentification) && this.ProtectedLinkRecordIdentification == linkParticipant.LinkRecordIdentification)
                            {
                                linkParticipant.MayNotBeDeleted = true;
                            }

                            break;
                        }
                        else
                        {
                            UPContainerInfoAreaMetaInfo iaMeta      = result.MetaInfo.ResultInfoAreaMetaInfoAtIndex(j);
                            UPCRMLinkReader             _linkReader = new UPCRMLinkReader(resultRow.RootRecordIdentification, iaMeta.InfoAreaIdWithLink, null);
                            string linkRecordId = _linkReader.RequestLinkRecordOffline();

                            if (!string.IsNullOrEmpty(linkRecordId) && UPCRMDataStore.DefaultStore.RecordExistsOffline(linkRecordId))
                            {
                                UPCRMLinkParticipant linkParticipant = new UPCRMLinkParticipant(resultRow, linkRecordId);
                                this.AddLinkParticipant(linkParticipant);
                                break;
                            }
                        }
                    }
                }

                this.Finished(null);
            }
            else
            {
                base.SearchOperationDidFinishWithResult(operation, result);
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// The search operation did finish with result.
        /// </summary>
        /// <param name="operation">
        /// The operation.
        /// </param>
        /// <param name="result">
        /// The result.
        /// </param>
        public void SearchOperationDidFinishWithResult(Operation operation, UPCRMResult result)
        {
            if (result.RowCount > 0 || this.RequestOption != UPRequestOption.BestAvailable)
            {
                this.HandleResultClient(result, false);
                this.crmQuery = null;
                return;
            }

            if (!this.queryWithLinkRecord)
            {
                this.crmQuery = this.ClientQuery();
            }

            result = this.crmQuery.Find();
            this.HandleResultClient(result, true);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UPCRMCachedResult"/> class.
        /// </summary>
        /// <param name="result">
        /// The result.
        /// </param>
        /// <param name="condition">
        /// The condition.
        /// </param>
        public UPCRMCachedResult(UPCRMResult result, UPCRMResultCondition condition)
            : base(result.MetaInfo, result.IsServerResult ? result.ServerResponse() : result.RecordSet())
        {
            this.BaseResult = result;
            var resultRowArray = new List <UPCRMResultRow>();
            int i, count = result.RowCount;

            for (i = 0; i < count; i++)
            {
                var row = (UPCRMResultRow)this.ResultRowAtIndex(i);
                if (condition.Check(row))
                {
                    resultRowArray.Add(row);
                }
            }

            this.ResultRows = resultRowArray;
        }
Exemplo n.º 13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UPCRMResultSerializationInfo"/> class.
        /// </summary>
        /// <param name="result">
        /// The result.
        /// </param>
        public UPCRMResultSerializationInfo(UPCRMResult result)
        {
            this.resultInfoAreaMetaInfos = new List <UPContainerInfoAreaMetaInfo>();
            this.recordIdAttributeNames  = new List <string>();
            var crmQuery = result.MetaInfo;
            var count    = crmQuery.NumberOfResultInfoAreaMetaInfos();

            for (var i = 0; i < count; i++)
            {
                var infoAreaMetaInfo = crmQuery.ResultInfoAreaMetaInfoAtIndex(i);
                this.resultInfoAreaMetaInfos.Add(infoAreaMetaInfo);
                this.recordIdAttributeNames.Add(
                    infoAreaMetaInfo.LinkId > 0
                        ? $"record{infoAreaMetaInfo.InfoAreaId}{infoAreaMetaInfo.LinkId}"
                        : $"record{infoAreaMetaInfo.InfoAreaId}");
            }

            var columnCount = result.ColumnCount;

            this.columnInfos = new List <UPCRMResultSerializationColumnInfo>(columnCount);
            for (var i = 0; i < columnCount; i++)
            {
                var fieldMetaInfo = crmQuery.OutputField(i);
                var columnInfo    = new UPCRMResultSerializationColumnInfo();
                this.columnInfos.Add(columnInfo);
                columnInfo.FunctionName = fieldMetaInfo.FunctionName;
                if (string.IsNullOrEmpty(fieldMetaInfo.FunctionName))
                {
                    columnInfo.IndexAttributeName = $"{i}";
                }

                columnInfo.Label          = fieldMetaInfo.ConfigField.Label;
                columnInfo.CrmField       = fieldMetaInfo.CrmField;
                columnInfo.ReportRawValue = result.ReportRawValueForColumnNumber(i);
                if (columnInfo.ReportRawValue)
                {
                    columnInfo.ReportExternalKey = columnInfo.CrmField.IsVariableCatalogField;
                }

                columnInfo.HasAttributes = columnInfo.ReportRawValue ||
                                           !string.IsNullOrEmpty(columnInfo.IndexAttributeName);
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// Merges the server result with local results.
        /// </summary>
        /// <param name="serverResult">
        /// The server result.
        /// </param>
        /// <param name="localResults">
        /// The local results.
        /// </param>
        public void MergeServerResultWithLocalResults(UPCRMResult serverResult, Dictionary <string, object> localResults)
        {
            var resultsOfCurrentQuery = new List <ICrmDataSourceRow>();

            for (var i = 0; i < serverResult.RowCount; i++)
            {
                var serverResultRow = (UPCRMResultRow)serverResult.ResultRowAtIndex(i);
                var localResultRow  = localResults.ValueOrDefault(serverResultRow.RootRecordId) as UPCRMResultRow;
                if (localResultRow != null)
                {
                    serverResultRow.SetHasLocalCopy(true);
                }

                resultsOfCurrentQuery.Add(serverResultRow);
            }

            this.AddResult(serverResult);
            this.SetResultRows(resultsOfCurrentQuery);
        }
Exemplo n.º 15
0
        /// <summary>
        /// The handle result client.
        /// </summary>
        /// <param name="result">
        /// The result.
        /// </param>
        /// <param name="client">
        /// The client.
        /// </param>
        public void HandleResultClient(UPCRMResult result, bool client)
        {
            if (this.queryWithLinkRecord)
            {
                if (result.RowCount > 0)
                {
                    UPCRMResultRow resultRow = (UPCRMResultRow)result.ResultRowAtIndex(0);
                    this.DestinationRecordIdentification = resultRow.RootRecordIdentification;
                }
            }
            else
            {
                UPCRMResultRow row = (UPCRMResultRow)result.ResultRowAtIndex(0);
                if (client)
                {
                    this.DestinationRecordIdentification = this.RecordIdentificationFromResultRow(row);
                }
                else
                {
                    int position = 0;
                    Dictionary <string, int> linkPositions = new Dictionary <string, int>();
                    foreach (UPCRMLinkReaderLinkContext context in this.linkContexts)
                    {
                        string linkKey = $"{context.LinkInfo.TargetInfoAreaId}_{(context.LinkInfo.LinkId < 0 ? 0 : context.LinkInfo.LinkId)}";
                        if (linkPositions.ValueOrDefault(linkKey) == 0)
                        {
                            continue;
                        }

                        this.DestinationRecordIdentification = row.RecordIdentificationAtIndex(++position);
                        if (!string.IsNullOrEmpty(this.DestinationRecordIdentification))
                        {
                            break;
                        }

                        linkPositions[linkKey] = position - 1;
                    }
                }
            }

            this.TheDelegate?.LinkReaderDidFinishWithResult(this, this.DestinationRecordIdentification);
        }
Exemplo n.º 16
0
        /// <summary>
        /// The search operation did fail with error.
        /// </summary>
        /// <param name="operation">
        /// The operation.
        /// </param>
        /// <param name="error">
        /// The error.
        /// </param>
        public void SearchOperationDidFailWithError(Operation operation, Exception error)
        {
            if (error.IsConnectionOfflineError() && this.RequestOption == UPRequestOption.BestAvailable)
            {
                if (!this.queryWithLinkRecord)
                {
                    this.crmQuery = this.ClientQuery();
                }

                UPCRMResult result = this.crmQuery.Find();
                if (result.RowCount > 0)
                {
                    this.HandleResultClient(result, true);
                    this.crmQuery = null;
                    return;
                }
            }

            this.crmQuery = null;
            this.TheDelegate?.LinkReaderDidFinishWithResult(this, error);
        }
Exemplo n.º 17
0
        /// <summary>
        /// The request link record offline.
        /// </summary>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public string RequestLinkRecordOffline()
        {
            this.linkContexts = this.LinkReaderContextsForParentLinkString(this.ParentLinkString);
            if (this.linkContexts == null || this.linkContexts.Count == 0)
            {
                return(null);
            }

            if (this.linkContexts.Count == 1)
            {
                UPCRMLinkReaderLinkContext context = this.linkContexts[0];
                if (context.LinkInfo.IsGeneric)
                {
                    UPContainerMetaInfo crmQuery = this.QueryForLinkLinkRecord(context.LinkInfo, this.SourceRecordIdentification);
                    UPCRMResult         result   = crmQuery.Find();
                    if (result.RowCount > 0)
                    {
                        UPCRMResultRow row = (UPCRMResultRow)result.ResultRowAtIndex(0);
                        return(row.RootRecordIdentification);
                    }

                    return(null);
                }
            }

            UPContainerMetaInfo crmQuery2 = this.ClientQuery();
            UPCRMResult         result2   = crmQuery2.Find();

            if (result2.RowCount == 0)
            {
                return(null);
            }

            UPCRMResultRow row2 = (UPCRMResultRow)result2.ResultRowAtIndex(0);

            return(this.RecordIdentificationFromResultRow(row2));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMPricingResult"/> class.
 /// </summary>
 /// <param name="result">The result.</param>
 /// <param name="fieldControl">The field control.</param>
 public UPCRMPricingResult(UPCRMResult result, FieldControl fieldControl)
 {
     this.Result       = result;
     this.FieldControl = fieldControl;
 }
Exemplo n.º 19
0
        /// <summary>
        /// Sources the field result row for link.
        /// </summary>
        /// <param name="link">The link.</param>
        /// <returns></returns>
        List <string> SourceFieldResultRowForLink(UPCRMLink link)
        {
            UPCRMTableInfo sourceTableInfo = this.dataStore.TableInfoForInfoArea(link.InfoAreaId);
            UPCRMLinkInfo  linkInfo        = this.tableInfo.LinkInfoForTargetInfoAreaIdLinkId(link.InfoAreaId, link.LinkId);
            bool           noFields        = true;

            if (sourceTableInfo == null || linkInfo?.LinkFieldArray == null)
            {
                return(null);
            }

            List <UPCRMFieldSetterField> fieldMap = new List <UPCRMFieldSetterField>(linkInfo.LinkFieldArray.Count);

            foreach (UPCRMLinkInfoField field in linkInfo.LinkFieldArray)
            {
                UPCRMFieldInfo fieldInfo = sourceTableInfo.FieldInfoForFieldId(field.TargetFieldId);
                if (fieldInfo != null)
                {
                    fieldMap.Add(new UPCRMFieldSetterSourceField(field.TargetFieldId));
                    noFields = false;
                }
                else
                {
                    UPCRMFieldSetterSourceLink sourceLink = null;
                    List <UPCRMLinkInfo>       allLinks   = sourceTableInfo.LinksWithField();
                    foreach (UPCRMLinkInfo currentLinkInfo in allLinks)
                    {
                        foreach (UPCRMLinkInfoField linkInfoField in currentLinkInfo.LinkFieldArray)
                        {
                            if (linkInfoField.FieldId == field.TargetFieldId)
                            {
                                UPCRMTableInfo parentTableInfo = this.dataStore.TableInfoForInfoArea(currentLinkInfo.TargetInfoAreaId);
                                UPCRMLinkInfo  parentIdentLink = parentTableInfo.IdentLink;
                                if (parentIdentLink != null)
                                {
                                    if (parentIdentLink.FirstField.TargetFieldId == linkInfoField.TargetFieldId)
                                    {
                                        sourceLink = new UPCRMFieldSetterSourceLink(currentLinkInfo.TargetInfoAreaId, currentLinkInfo.LinkId, 0);
                                        break;
                                    }

                                    if (parentIdentLink.SecondField.TargetFieldId == linkInfoField.TargetFieldId)
                                    {
                                        sourceLink = new UPCRMFieldSetterSourceLink(currentLinkInfo.TargetInfoAreaId, currentLinkInfo.LinkId, 1);
                                        break;
                                    }
                                }
                            }
                        }

                        if (sourceLink != null)
                        {
                            break;
                        }
                    }

                    if (sourceLink != null)
                    {
                        fieldMap.Add(sourceLink);
                        noFields = false;
                    }
                    else
                    {
                        fieldMap.Add(new UPCRMFieldSetterField());
                    }
                }
            }

            if (noFields)
            {
                return(null);
            }

            List <UPCRMField> queryFields = new List <UPCRMField>();
            int resultPosition            = 0;

            foreach (UPCRMFieldSetterField fieldSetterField in fieldMap)
            {
                if (fieldSetterField.IsField)
                {
                    queryFields.Add(fieldSetterField.FieldWithInfoAreaId(link.InfoAreaId));
                    fieldSetterField.ResultPosition = resultPosition++;
                }
            }

            foreach (UPCRMFieldSetterField fieldSetterField in fieldMap)
            {
                if (fieldSetterField.IsLink)
                {
                    queryFields.Add(fieldSetterField.FieldWithInfoAreaId(link.InfoAreaId));
                    fieldSetterField.ResultPosition = resultPosition++;
                }
            }

            UPContainerMetaInfo crmQuery = new UPContainerMetaInfo(queryFields, linkInfo.TargetInfoAreaId);
            UPCRMResult         result   = crmQuery.ReadRecord(link.RecordIdentification);

            if (result != null && result.RowCount == 1)
            {
                UPCRMResultRow row         = (UPCRMResultRow)result.ResultRowAtIndex(0);
                List <string>  resultArray = new List <string>(fieldMap.Count);
                foreach (UPCRMFieldSetterField field in fieldMap)
                {
                    if (field.IsField)
                    {
                        resultArray.Add(row.RawValueAtIndex(field.ResultPosition));
                    }
                    else if (field.IsLink)
                    {
                        string recordId = row.RawValueAtIndex(field.ResultPosition);
                        if (string.IsNullOrEmpty(recordId))
                        {
                            resultArray.Add(string.Empty);
                        }
                        else if (recordId.StartsWith("new") && recordId.Length == 15)
                        {
                            long offlineLnr = (Convert.ToInt64(recordId.Substring(3, 8), 16) << 16) + Convert.ToInt64(recordId.Substring(11, 4), 16);
                            if (this.offlineStationNumber > 0 && offlineLnr > 0)
                            {
                                if (((UPCRMFieldSetterSourceLink)field).FieldIndex == 0)
                                {
                                    resultArray.Add(this.offlineStationNumber.ToString());
                                }
                                else
                                {
                                    resultArray.Add(offlineLnr.ToString());
                                }
                            }
                        }
                        else if (((UPCRMFieldSetterSourceLink)field).FieldIndex == 0)
                        {
                            resultArray.Add(recordId.StatNoFromRecordIdString());
                        }
                        else
                        {
                            resultArray.Add(recordId.RecordNoFromRecordIdString());
                        }
                    }
                    else
                    {
                        resultArray.Add(string.Empty);
                    }
                }

                return(resultArray);
            }

            return(null);
        }
Exemplo n.º 20
0
 /// <summary>
 /// Searches the operation did finish with result.
 /// </summary>
 /// <param name="operation">The operation.</param>
 /// <param name="result">The result.</param>
 public void SearchOperationDidFinishWithResult(Operation operation, UPCRMResult result)
 {
     this.LoadWithResult(result);
 }
Exemplo n.º 21
0
        /// <summary>
        /// Reads the rep with identifier.
        /// </summary>
        /// <param name="repId">The rep identifier.</param>
        /// <returns></returns>
        public UPCRMRep ReadRepWithId(string repId)
        {
            if (string.IsNullOrEmpty(repId))
            {
                return(null);
            }

            if (this.missingRepDictionary == null)
            {
                this.missingRepDictionary = new Dictionary <string, UPCRMRep>();
            }
            else
            {
                var returnRep = this.missingRepDictionary.ValueOrDefault(repId);
                if (returnRep != null)
                {
                    return(returnRep);
                }

                if (this.emptyRepDictionary.ValueOrDefault(repId) != null)
                {
                    return(null);
                }
            }

            var          configStore      = ConfigurationUnitStore.DefaultStore;
            var          repSearchAndList = configStore.SearchAndListByName("IDSystem");
            FieldControl fieldControl     = null;

            if (repSearchAndList != null)
            {
                fieldControl = configStore.FieldControlByNameFromGroup("List", "IDSystem");
            }

            if (fieldControl?.Fields == null ||
                fieldControl.Fields.Count == 0)
            {
                return(null);
            }

            UPCRMField vField        = fieldControl.Fields[0].Field;
            var        fromCondition = new UPInfoAreaConditionLeaf(fieldControl.InfoAreaId, vField.FieldId, "=", repId);
            var        metaInfo      = new UPContainerMetaInfo(fieldControl);

            metaInfo.RootInfoAreaMetaInfo.AddCondition(fromCondition);
            UPCRMResult result = metaInfo.Find();
            int         count  = result.RowCount;

            if (count > 0)
            {
                lock (this.missingRepDictionary)
                {
                    for (var i = 0; i < count; i++)
                    {
                        var row = result.ResultRowAtIndex(i);
                        var rep = new UPCRMRep(
                            row.RawValueAtIndex(0),
                            row.RawValueAtIndex(2),
                            row.RawValueAtIndex(1),
                            row.RootRecordId,
                            this.RepTypeFromStringRepTypeId(row.RawValueAtIndex(3)));

                        this.missingRepDictionary[rep.RepId] = rep;
                    }

                    foreach (var rep in this.repArray)
                    {
                        if (string.IsNullOrEmpty(rep.RepOrgGroupId))
                        {
                            continue;
                        }

                        var parentRep = this.missingRepDictionary.ValueOrDefault(rep.RepOrgGroupId);
                        parentRep?.AddChildRep(rep);
                    }
                }

                return(this.missingRepDictionary.ValueOrDefault(repId));
            }

            if (this.emptyRepDictionary == null)
            {
                this.emptyRepDictionary = new Dictionary <string, string>();
            }

            this.emptyRepDictionary[repId] = repId;
            return(null);
        }
Exemplo n.º 22
0
 /// <summary>
 /// Loads the with result.
 /// </summary>
 /// <param name="result">The result.</param>
 /// <returns></returns>
 public virtual bool LoadWithResult(UPCRMResult result)
 {
     return(false);
 }
 /// <summary>
 /// Search operation did finish with result.
 /// </summary>
 /// <param name="operation">The operation.</param>
 /// <param name="result">The result.</param>
 public void SearchOperationDidFinishWithResult(Operation operation, UPCRMResult result)
 {
     this.currentQuery = null;
     this.TheDelegate?.FavoritesDidFinishWithResult(this, result);
 }
Exemplo n.º 24
0
 /// <summary>
 /// Adds the result.
 /// </summary>
 /// <param name="result">
 /// The result.
 /// </param>
 public void AddResult(UPCRMResult result)
 {
     this.results.Add(result);
 }