Exemplo n.º 1
0
 public UploadDetails(UploadId id, IEnumerable <FileDetails> files, UploadDescription description, IReadOnlyList <string> rejectedDuplicates)
 {
     Id                 = Guard.NotNull(id, nameof(id));
     Files              = ArgUtils.ToRoList(files, nameof(files));
     Description        = Guard.NotNull(description, nameof(description));
     RejectedDuplicates = Guard.NotNull(rejectedDuplicates, nameof(rejectedDuplicates));
 }
        override public string ToString()
        {
            string result = string.Empty;

            if (string.IsNullOrEmpty(UploadId))
            {
                return(string.Empty);
            }
            result += UploadId.ToString() + ContextSeparator;

            if (ContentMd5 == null)
            {
                ContentMd5 = string.Empty;
            }

            if (Crc64 == null)
            {
                Crc64 = string.Empty;
            }

            result += ContentMd5 + ContextSeparator + Crc64 + ContextSeparator;

            if (PartContextList.Count == 0)
            {
                return(string.Empty);
            }

            foreach (var part in PartContextList)
            {
                string partStr = part.ToString();
                if (string.IsNullOrEmpty(partStr))
                {
                    return(string.Empty);
                }
                result += partStr + PartContextSeparator;
            }

            if (result.EndsWith(new string(PartContextSeparator, 1)))
            {
                result = result.Substring(0, result.Length - 1);
            }
            return(result);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> OnPostAsync([FromServices] IMediator mediator)
        {
            if (Files?.Count > 0)
            {
                SourceFile[] uploads = Files
                                       .Select(x => new SourceFile(x.OpenReadStream(), new MimeType(x.ContentType), x.FileName))
                                       .ToArray();

                // TODO: should we dispose streams after upload?

                var      parameters = new UploadParameters(uploads, new UploadDescription(Description ?? string.Empty));
                UploadId uploadId   = await mediator.Send(new UploadFilesCommand( parameters ));

                try
                {
                    await mediator.Send(new UpdateUploadDetailsFromMetadataCommand( uploadId ));
                }
                catch
                {
                    // TODO: error logging
                }

                UploadDetails result = await mediator.Send(new GetUploadDetailsQuery( uploadId ));

                if (result.Files.Count == 1 && result.RejectedDuplicates.Count == 0)
                {
                    TempData["OperationResultMessage"] = $"File uploaded successfully.";

                    return(RedirectToPage("View", new { fileId = result.Files[0].FileId.Value }));
                }

                TempData["OperationResultMessage"] = $"{result.Files.Count} files uploaded successfully.";

                return(RedirectToPage("UploadResult", new { uploadId = result.Id.Value }));
            }

            ModelState.AddModelError(string.Empty, "Select at least one file.");

            return(Page());
        }
Exemplo n.º 4
0
        public async Task <string> SaveAs(bool overwrite = false, bool autoCreateDirectory = true)
        {
            var rootDir     = UploadId.ToString("N");
            var destination = Path.Combine(_uploadDir, DateTime.Now.ToString("yyyyMM"),
                                           rootDir.Substring(00, 02), rootDir.Substring(02, 03),

                                           /** OPTIONAL
                                           ** keep the files send with same uploadId
                                           ** united in the same folder
                                           ** rootDir.Substring(05, 27),
                                           ***/UUI.ToString("N"));

            if (!JoinFiles)
            {
                var directory = new DirectoryInfo(destination);
                destination = Path.Combine(destination, PartIndex.ToString("0000000000"));
                if (autoCreateDirectory)
                {
                    directory.Create();
                }
                using (var file = new FileStream(destination, overwrite ? FileMode.OpenOrCreate : FileMode.CreateNew))
                {
                    await InputStream.CopyToAsync(file);
                }
                if (TotalParts == 0)
                {
                    var moveTo = Path.Combine(directory.FullName, Filename);
                    File.Move(destination, moveTo);
                    destination = moveTo;
                }
            }
            else
            {
                destination = await JoinFilesInOne(destination);
            }
            return(destination);
        }
 public GetUploadDetailsQuery(UploadId uploadId)
 {
     UploadId = Guard.NotNull(uploadId, nameof(uploadId));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (ExternalId != null)
         {
             hashCode = hashCode * 59 + ExternalId.GetHashCode();
         }
         if (UploadId != null)
         {
             hashCode = hashCode * 59 + UploadId.GetHashCode();
         }
         if (Athlete != null)
         {
             hashCode = hashCode * 59 + Athlete.GetHashCode();
         }
         if (Name != null)
         {
             hashCode = hashCode * 59 + Name.GetHashCode();
         }
         if (Distance != null)
         {
             hashCode = hashCode * 59 + Distance.GetHashCode();
         }
         if (MovingTime != null)
         {
             hashCode = hashCode * 59 + MovingTime.GetHashCode();
         }
         if (ElapsedTime != null)
         {
             hashCode = hashCode * 59 + ElapsedTime.GetHashCode();
         }
         if (TotalElevationGain != null)
         {
             hashCode = hashCode * 59 + TotalElevationGain.GetHashCode();
         }
         if (ElevHigh != null)
         {
             hashCode = hashCode * 59 + ElevHigh.GetHashCode();
         }
         if (ElevLow != null)
         {
             hashCode = hashCode * 59 + ElevLow.GetHashCode();
         }
         if (Type != null)
         {
             hashCode = hashCode * 59 + Type.GetHashCode();
         }
         if (StartDate != null)
         {
             hashCode = hashCode * 59 + StartDate.GetHashCode();
         }
         if (StartDateLocal != null)
         {
             hashCode = hashCode * 59 + StartDateLocal.GetHashCode();
         }
         if (Timezone != null)
         {
             hashCode = hashCode * 59 + Timezone.GetHashCode();
         }
         if (StartLatlng != null)
         {
             hashCode = hashCode * 59 + StartLatlng.GetHashCode();
         }
         if (EndLatlng != null)
         {
             hashCode = hashCode * 59 + EndLatlng.GetHashCode();
         }
         if (AchievementCount != null)
         {
             hashCode = hashCode * 59 + AchievementCount.GetHashCode();
         }
         if (KudosCount != null)
         {
             hashCode = hashCode * 59 + KudosCount.GetHashCode();
         }
         if (CommentCount != null)
         {
             hashCode = hashCode * 59 + CommentCount.GetHashCode();
         }
         if (AthleteCount != null)
         {
             hashCode = hashCode * 59 + AthleteCount.GetHashCode();
         }
         if (PhotoCount != null)
         {
             hashCode = hashCode * 59 + PhotoCount.GetHashCode();
         }
         if (TotalPhotoCount != null)
         {
             hashCode = hashCode * 59 + TotalPhotoCount.GetHashCode();
         }
         if (Map != null)
         {
             hashCode = hashCode * 59 + Map.GetHashCode();
         }
         if (Trainer != null)
         {
             hashCode = hashCode * 59 + Trainer.GetHashCode();
         }
         if (Commute != null)
         {
             hashCode = hashCode * 59 + Commute.GetHashCode();
         }
         if (Manual != null)
         {
             hashCode = hashCode * 59 + Manual.GetHashCode();
         }
         if (_Private != null)
         {
             hashCode = hashCode * 59 + _Private.GetHashCode();
         }
         if (Flagged != null)
         {
             hashCode = hashCode * 59 + Flagged.GetHashCode();
         }
         if (WorkoutType != null)
         {
             hashCode = hashCode * 59 + WorkoutType.GetHashCode();
         }
         if (UploadIdStr != null)
         {
             hashCode = hashCode * 59 + UploadIdStr.GetHashCode();
         }
         if (AverageSpeed != null)
         {
             hashCode = hashCode * 59 + AverageSpeed.GetHashCode();
         }
         if (MaxSpeed != null)
         {
             hashCode = hashCode * 59 + MaxSpeed.GetHashCode();
         }
         if (HasKudoed != null)
         {
             hashCode = hashCode * 59 + HasKudoed.GetHashCode();
         }
         if (HideFromHome != null)
         {
             hashCode = hashCode * 59 + HideFromHome.GetHashCode();
         }
         if (GearId != null)
         {
             hashCode = hashCode * 59 + GearId.GetHashCode();
         }
         if (Kilojoules != null)
         {
             hashCode = hashCode * 59 + Kilojoules.GetHashCode();
         }
         if (AverageWatts != null)
         {
             hashCode = hashCode * 59 + AverageWatts.GetHashCode();
         }
         if (DeviceWatts != null)
         {
             hashCode = hashCode * 59 + DeviceWatts.GetHashCode();
         }
         if (MaxWatts != null)
         {
             hashCode = hashCode * 59 + MaxWatts.GetHashCode();
         }
         if (WeightedAverageWatts != null)
         {
             hashCode = hashCode * 59 + WeightedAverageWatts.GetHashCode();
         }
         return(hashCode);
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// Returns true if SummaryActivity instances are equal
        /// </summary>
        /// <param name="other">Instance of SummaryActivity to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(SummaryActivity other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     ExternalId == other.ExternalId ||
                     ExternalId != null &&
                     ExternalId.Equals(other.ExternalId)
                     ) &&
                 (
                     UploadId == other.UploadId ||
                     UploadId != null &&
                     UploadId.Equals(other.UploadId)
                 ) &&
                 (
                     Athlete == other.Athlete ||
                     Athlete != null &&
                     Athlete.Equals(other.Athlete)
                 ) &&
                 (
                     Name == other.Name ||
                     Name != null &&
                     Name.Equals(other.Name)
                 ) &&
                 (
                     Distance == other.Distance ||
                     Distance != null &&
                     Distance.Equals(other.Distance)
                 ) &&
                 (
                     MovingTime == other.MovingTime ||
                     MovingTime != null &&
                     MovingTime.Equals(other.MovingTime)
                 ) &&
                 (
                     ElapsedTime == other.ElapsedTime ||
                     ElapsedTime != null &&
                     ElapsedTime.Equals(other.ElapsedTime)
                 ) &&
                 (
                     TotalElevationGain == other.TotalElevationGain ||
                     TotalElevationGain != null &&
                     TotalElevationGain.Equals(other.TotalElevationGain)
                 ) &&
                 (
                     ElevHigh == other.ElevHigh ||
                     ElevHigh != null &&
                     ElevHigh.Equals(other.ElevHigh)
                 ) &&
                 (
                     ElevLow == other.ElevLow ||
                     ElevLow != null &&
                     ElevLow.Equals(other.ElevLow)
                 ) &&
                 (
                     Type == other.Type ||
                     Type != null &&
                     Type.Equals(other.Type)
                 ) &&
                 (
                     StartDate == other.StartDate ||
                     StartDate != null &&
                     StartDate.Equals(other.StartDate)
                 ) &&
                 (
                     StartDateLocal == other.StartDateLocal ||
                     StartDateLocal != null &&
                     StartDateLocal.Equals(other.StartDateLocal)
                 ) &&
                 (
                     Timezone == other.Timezone ||
                     Timezone != null &&
                     Timezone.Equals(other.Timezone)
                 ) &&
                 (
                     StartLatlng == other.StartLatlng ||
                     StartLatlng != null &&
                     StartLatlng.Equals(other.StartLatlng)
                 ) &&
                 (
                     EndLatlng == other.EndLatlng ||
                     EndLatlng != null &&
                     EndLatlng.Equals(other.EndLatlng)
                 ) &&
                 (
                     AchievementCount == other.AchievementCount ||
                     AchievementCount != null &&
                     AchievementCount.Equals(other.AchievementCount)
                 ) &&
                 (
                     KudosCount == other.KudosCount ||
                     KudosCount != null &&
                     KudosCount.Equals(other.KudosCount)
                 ) &&
                 (
                     CommentCount == other.CommentCount ||
                     CommentCount != null &&
                     CommentCount.Equals(other.CommentCount)
                 ) &&
                 (
                     AthleteCount == other.AthleteCount ||
                     AthleteCount != null &&
                     AthleteCount.Equals(other.AthleteCount)
                 ) &&
                 (
                     PhotoCount == other.PhotoCount ||
                     PhotoCount != null &&
                     PhotoCount.Equals(other.PhotoCount)
                 ) &&
                 (
                     TotalPhotoCount == other.TotalPhotoCount ||
                     TotalPhotoCount != null &&
                     TotalPhotoCount.Equals(other.TotalPhotoCount)
                 ) &&
                 (
                     Map == other.Map ||
                     Map != null &&
                     Map.Equals(other.Map)
                 ) &&
                 (
                     Trainer == other.Trainer ||
                     Trainer != null &&
                     Trainer.Equals(other.Trainer)
                 ) &&
                 (
                     Commute == other.Commute ||
                     Commute != null &&
                     Commute.Equals(other.Commute)
                 ) &&
                 (
                     Manual == other.Manual ||
                     Manual != null &&
                     Manual.Equals(other.Manual)
                 ) &&
                 (
                     _Private == other._Private ||
                     _Private != null &&
                     _Private.Equals(other._Private)
                 ) &&
                 (
                     Flagged == other.Flagged ||
                     Flagged != null &&
                     Flagged.Equals(other.Flagged)
                 ) &&
                 (
                     WorkoutType == other.WorkoutType ||
                     WorkoutType != null &&
                     WorkoutType.Equals(other.WorkoutType)
                 ) &&
                 (
                     UploadIdStr == other.UploadIdStr ||
                     UploadIdStr != null &&
                     UploadIdStr.Equals(other.UploadIdStr)
                 ) &&
                 (
                     AverageSpeed == other.AverageSpeed ||
                     AverageSpeed != null &&
                     AverageSpeed.Equals(other.AverageSpeed)
                 ) &&
                 (
                     MaxSpeed == other.MaxSpeed ||
                     MaxSpeed != null &&
                     MaxSpeed.Equals(other.MaxSpeed)
                 ) &&
                 (
                     HasKudoed == other.HasKudoed ||
                     HasKudoed != null &&
                     HasKudoed.Equals(other.HasKudoed)
                 ) &&
                 (
                     HideFromHome == other.HideFromHome ||
                     HideFromHome != null &&
                     HideFromHome.Equals(other.HideFromHome)
                 ) &&
                 (
                     GearId == other.GearId ||
                     GearId != null &&
                     GearId.Equals(other.GearId)
                 ) &&
                 (
                     Kilojoules == other.Kilojoules ||
                     Kilojoules != null &&
                     Kilojoules.Equals(other.Kilojoules)
                 ) &&
                 (
                     AverageWatts == other.AverageWatts ||
                     AverageWatts != null &&
                     AverageWatts.Equals(other.AverageWatts)
                 ) &&
                 (
                     DeviceWatts == other.DeviceWatts ||
                     DeviceWatts != null &&
                     DeviceWatts.Equals(other.DeviceWatts)
                 ) &&
                 (
                     MaxWatts == other.MaxWatts ||
                     MaxWatts != null &&
                     MaxWatts.Equals(other.MaxWatts)
                 ) &&
                 (
                     WeightedAverageWatts == other.WeightedAverageWatts ||
                     WeightedAverageWatts != null &&
                     WeightedAverageWatts.Equals(other.WeightedAverageWatts)
                 ));
        }
 public UpdateUploadDetailsFromMetadataCommand(UploadId uploadId)
 {
     UploadId = Guard.NotNull(uploadId, nameof(uploadId));
 }