public void CalculateWithDistanceZeroSpeedMinPerKm()
        {
            //Arrange
            var activity = new ActivityDto()
            {
                Duration = new TimeSpan(0, 50, 0),
                Distance = 0
            };

            //Act
            var result = activity.Speed(SpeedType.MinPerKm);

            //Assert
            Assert.AreEqual("", result);
        }
        public void CalculateCorrectSpeedKmPerHour()
        {
            //Arrange
            var activity = new ActivityDto
                {
                    Duration = new TimeSpan(1, 30, 0),
                    Distance = 30
                };

            //Act
            var result = activity.Speed(SpeedType.KmPerHour);

            //Assert
            Assert.AreEqual("20,00",result);
        }
        public ActionResult Create(ActivityDto dto, HttpPostedFileBase[] files)
        {
            var user = _userRepository.GetById(Convert.ToInt32(User.Identity.Name));
            var activity = new Activity
            {
                Description = dto.Description,
                Type = dto.Type,
                User = user,
                Distance = dto.Distance,
                Duration = dto.Duration
            };

            // Save attachments
            foreach (var file in files)
            {
                if (file == null)
                    continue;

                var fileName = Path.GetFileName(file.FileName);

                var attachment = new Attachment
                {
                    MediaType = file.ContentType,
                    Size = file.ContentLength,
                    Path = String.Format("attachments/{0}/{1}/{2}", user.Id, DateTime.Now.ToString("yyyy-MM-dd"), fileName),
                    User = user
                };

                _attachmentStorage.Save(attachment.Path, file.InputStream);
                _attachmentRepository.Save(attachment);

                activity.Attachments.Add(attachment);
            }

            _activityRepository.Save(activity);

            return RedirectToAction("Details", new {id = activity.Id});
        }
        public ActionResult Details(int id)
        {
            var activity = _activityRepository.GetById(id);

            if (activity == null)
                return HttpNotFound();

            var activityModel = new ActivityDto
                {
                    Duration = activity.Duration,
                    Distance = activity.Distance,
                    Description = activity.Description,
                    Type = activity.Type,
                    User = activity.User,
                    Id = activity.Id
                };

            return View(activityModel);
        }