Exemplo n.º 1
0
            private void Resolve(ResolveRequestDTO req)
            {
                Entity <DataType> .ResolveStarted(req);

                this.resolver.Resolve(req, (r =>
                {
                    if (ResolveErrorHelper.HandledError(req.key, r, Entity <DataType> .RESOLVE_FAILED, debug: this.debug))
                    {
                        return;
                    }
                    var resultItem = r.item;
                    if (!this.isOkStatus(resultItem.status))
                    {
                        NotificationBus.Send(
                            Entity <DataType> .RESOLVE_FAILED,
                            ResolveFailedDTO.For(req, resultItem.status)
                            );
                        return;
                    }
                    Entity <DataType> .ResolveSucceeded(
                        new ResolveSucceededDTO <DataType> {
                        key = req.key,
                        id = resultItem.id,
                        resolveRequestId = req.resolveRequestId,
                        data = resultItem.data,
                        timestamp = resultItem.timestamp,
                        maxAgeSecs = resultItem.maxAgeSecs
                    });
                }));
            }
Exemplo n.º 2
0
 public ResolveStatus ResolveFailed(ResolveFailedDTO dto, DateTimeOffset updateTime)
 {
     return(new ResolveStatus {
         isResolveInProgress = false,
         updatedAt = updateTime,
         resolveError = dto.errorMessage,
         hasResolved = this.hasResolved,
         timestamp = this.timestamp,
         maxAgeSecs = this.maxAgeSecs,
         requestIdLastStarted = this.requestIdLastStarted,
         requestIdLastCompleted = dto.resolveRequestId
     });
 }
Exemplo n.º 3
0
            private async void Resolve(ResolveRequestDTO req)
            {
#if UNITY_EDITOR || DEBUG_UNSTRIP
                if (this.debug)
                {
                    Debug.LogFormat(
                        "[{0}] will resolve {1} with key {2}",
                        Time.frameCount, typeof(DataType).Name, req.key
                        );
                }
#endif
                Entity <DataType> .ResolveStarted(req);

                try
                {
                    var resultItem = await this.resolver.ResolveAsync(req);

                    if (!this.isOkStatus(resultItem.status))
                    {
                        NotificationBus.Send(
                            Entity <DataType> .RESOLVE_FAILED,
                            ResolveFailedDTO.For(req, resultItem.status)
                            );
                        return;
                    }
                    Entity <DataType> .ResolveSucceeded(
                        new ResolveSucceededDTO <DataType>
                    {
                        key = req.key,
                        id  = resultItem.id,
                        resolveRequestId = req.resolveRequestId,
                        data             = resultItem.data,
                        timestamp        = resultItem.timestamp,
                        maxAgeSecs       = resultItem.maxAgeSecs
                    });
                }
                catch (Exception e)
                {
                    Entity <DataType> .ResolveFailed(
                        ResolveFailedDTO.For(req, e.Message)
                        );
                }
            }
Exemplo n.º 4
0
 public static void ResolveFailed(ResolveFailedDTO dto, Opts opts = Opts.RequireReceiver)
 {
     N.Send(RESOLVE_FAILED, dto, opts);
 }