public async Task <QuotesUploadErrorCode> UploadMissingQuotesAsync([FromBody] UploadMissingQuotesRequest request) { if (!DateTime.TryParse(request.TradingDay, out var tradingDay)) { await _log.WriteWarningAsync(nameof(PricesController), nameof(UploadMissingQuotesAsync), request.TradingDay, "Couldn't parse trading day"); return(QuotesUploadErrorCode.InvalidTradingDay); } var draftExists = await _draftSnapshotKeeper .Init(tradingDay) .ExistsAsync(); if (!draftExists) { return(QuotesUploadErrorCode.NoDraft); } try { await _snapshotService.MakeTradingDataSnapshotFromDraft( request.CorrelationId, request.Cfd, request.Forex); } catch (InvalidOperationException e) { await _log.WriteErrorAsync(nameof(PricesController), nameof(UploadMissingQuotesAsync), null, e); return(QuotesUploadErrorCode.AlreadyInProgress); } catch (EmptyPriceUploadException e) { await _log.WriteErrorAsync(nameof(PricesController), nameof(UploadMissingQuotesAsync), null, e); return(QuotesUploadErrorCode.EmptyQuotes); } return(QuotesUploadErrorCode.None); }