Beispiel #1
0
        public async Task <IRpcMethodResult> AddTranslateMetrics(TranslateMetrics metrics)
        {
            if (!await IsAuthorizedAsync())
            {
                return(Error((int)RpcErrorCode.InvalidRequest, "Forbidden"));
            }

            metrics.UserRef    = User.UserId;
            metrics.ProjectRef = ResourceId;
            await _translateMetrics.ReplaceAsync(metrics, true);

            return(Ok());
        }
        public async Task <IRpcMethodResult> AddTranslateMetrics(string projectId, TranslateMetrics metrics)
        {
            try
            {
                await _projectService.AddTranslateMetricsAsync(UserId, projectId, metrics);

                return(Ok());
            }
            catch (ForbiddenException)
            {
                return(ForbiddenError());
            }
            catch (DataNotFoundException dnfe)
            {
                return(NotFoundError(dnfe.Message));
            }
        }
Beispiel #3
0
        public async Task AddTranslateMetricsAsync(string curUserId, string projectId, TranslateMetrics metrics)
        {
            Attempt <SFProject> attempt = await RealtimeService.TryGetSnapshotAsync <SFProject>(projectId);

            if (!attempt.TryResult(out SFProject project))
            {
                throw new DataNotFoundException("The project does not exist.");
            }

            if (!project.UserRoles.ContainsKey(curUserId))
            {
                throw new ForbiddenException();
            }

            metrics.UserRef    = curUserId;
            metrics.ProjectRef = projectId;
            metrics.Timestamp  = DateTime.UtcNow;
            await _translateMetrics.ReplaceAsync(metrics, true);
        }