Exemplo n.º 1
0
        public async Task <IActionResult> Post([FromBody] Transfer.Models.Transfer model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var savedTransfer = service.Add(model); //AddAsync ?

                    if (savedTransfer != null)
                    {
                        return(Created($"/api/partner/{savedTransfer.Id}", savedTransfer));
                    }
                    else
                    {
                        logger.LogError("savedTransfer was null");
                        return(BadRequest(ModelState));
                    }
                }
                else
                {
                    logger.LogError("ModelState is not valid");
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                logger.LogError($"Failed to save new transfer: {ex}");
                return(BadRequest($"Failed to save new transfer beacuse of exception "));
            }
        }
Exemplo n.º 2
0
        public IActionResult Post([FromBody] TransferModel transfer)
        {
            var model         = _mapper.Map <Transfer>(transfer);
            var newTransferId = _transferService.Add(model);

            return(Created("api/transfer", newTransferId));
        }
        private async Task CreateDownload(string source, IApiClient client, LocalItem localItem)
        {
            var existingRequest = BackgroundTransferService.Requests.FirstOrDefault(x => x.Tag != null && x.Tag.Contains(localItem.Id));

            if (existingRequest != null)
            {
                return;
            }

            await _storageService.CreateDirectoryIfNotThere("AnyTime");

            await _storageService.CreateDirectoryIfNotThere("Shared\\Transfers");

            await _storageService.CreateDirectoryIfNotThere("Shared\\Transfers\\Sync");

            var stringVersion = ApplicationManifest.Current.App.Version;

            var downloader = new BackgroundTransferRequest(new Uri(source, UriKind.Absolute));

            downloader.Headers.Add("X-MediaBrowser-Token", client.AccessToken);
            var authorization = string.Format("MediaBrowser UserId=\"{0}\", Client=\"{1}\", Device=\"{2}\", DeviceId=\"{3}\", Version=\"{4}\"", client.CurrentUserId, client.ClientName, client.DeviceName, client.DeviceId, stringVersion);

            downloader.Headers.Add("Authorization", authorization);
            downloader.Method = "GET";
            downloader.Tag    = JsonConvert.SerializeObject(new JobData(localItem.Id, localItem.LocalPath, localItem.Item.Name, localItem.Item.Type));

            var downloadLocation = new Uri(string.Format(Constants.AnyTime.DownloadLocation, localItem.Id), UriKind.RelativeOrAbsolute);

            downloader.DownloadLocation       = downloadLocation;
            downloader.TransferStatusChanged += DownloaderOnTransferStatusChanged;

            if (BackgroundTransferService.Requests.Count() == 25)
            {
                // TODO: error or something
                var i = 1;
            }

            var complete = BackgroundTransferService.Requests.Where(x => x.TransferStatus == TransferStatus.Completed).ToList();

            if (!complete.IsNullOrEmpty())
            {
                foreach (var request in complete)
                {
                    BackgroundTransferService.Remove(request);
                }
            }

            _transferService.Add(downloader);
        }