public async Task AddAsync(Guid id, Guid userId, string category,
                                   string name, string description, DateTime createdAt)
        {
            var activityCategory = await _categoryRepository.GetAsync(category);

            //check if activityCategory exist else create a new one
            if (activityCategory == null)
            {
                throw new ActioException("category_not_found",
                                         $"Category: '{category}' was not found.");
            }
            //create a new Activity object
            var activity = new Activity(id, activityCategory, userId,
                                        name, description, createdAt);
            //add the new Activity object
            await _activityRepository.AddAsync(activity);
        }
예제 #2
0
        public async Task HandleAsync(ActivityCreated @event)
        {
            await Task.CompletedTask;

            await _activityRepository.AddAsync(new Activity()
            {
                Category    = @event.Category,
                CreateAt    = @event.CreatedAt,
                Description = @event.Description,
                Id          = @event.Id,
                Name        = @event.Name,
                UserId      = @event.UserId
            });


            Console.WriteLine($"Activity created: {@event.Name}");
        }
예제 #3
0
        public async Task HandleAsync(ActivityCreated @event)
        {
            await _activityRepository.AddAsync(new Activity
            {
                // Flattened DTO model. It is used to do not pass whole object to Message Queue, but instead
                // save object in the microservice database. In this case, upon Get API call it can query object from
                // internal database.
                Id          = @event.Id,
                Name        = @event.Name,
                Category    = @event.Category,
                Description = @event.Description,
                UserId      = @event.UserId,
                CreatedAt   = @event.CreatedAt
            });

            Console.WriteLine($"Activity created: {@event.Name}");
        }
예제 #4
0
        public async Task AddAsync
            (Guid id, Guid userId, string category, string name, string description, DateTime createdAt)
        {
            var activitycategory = new Category
            {
                Name = category,
                Id   = Guid.NewGuid()
            };
            // if (activitycategory == null)
            // {
            //     throw new ActioException("category_not_found",$"Category:'{category}was not found.");
            // }

            var activity = new Domain.Core.Activity(id, activitycategory, userId,
                                                    name, description, createdAt);
            await _activityRepository.AddAsync(activity);
        }
        public async Task CreateAsync(int id, string title, string description, DateTime timestart, DateTime timeEnd,
                                      string location, int creatorId, string type, string priority, string status)
        {
            var activity = await _activityRepository.GetAsync(id);

            if (activity != null)
            {
                throw new ServiceException(ErrorCodes.ActivityNotFound,
                                           $"Activity with this {title} already exists.");
            }

            activity = new Activity(title, description, timestart, timeEnd, location, creatorId);

            activity.SetStates(type, priority, status);

            await _activityRepository.AddAsync(activity);

            await _unitOfWork.SaveChangesAsync();
        }
        public async Task AddAsync(
            Guid id,
            Guid userId,
            string category,
            string name,
            string description,
            DateTime createdAt)
        {
            var activityCategory = await _categoryRepository.GetAsync(category);

            if (activityCategory == null)
            {
                throw new CustomException("category_not_found", $"Category: '{category}' was not found.");
            }

            var activity = new Activity(id, activityCategory, userId, name, description, createdAt);

            await _activityRepository.AddAsync(activity);
        }
예제 #7
0
        public Task <bool> Handle(CreateActivityCommand request, CancellationToken cancellationToken)
        {
            var activity = new Domain.AggregatesModel.ActivityAggregate.Activity(request.Owner.UserId,
                                                                                 request.Description,
                                                                                 request.Details,
                                                                                 request.EndTime,
                                                                                 request.ActivityTime,
                                                                                 request.Address,
                                                                                 request.LimitsNum);

            foreach (var participant in request.Participants)
            {
                activity.JoinActivity(participant.UserId, participant.Nickname, participant.Avatar);
            }

            _activityRepository.AddAsync(activity);

            return(_activityRepository.UnitOfWork
                   .SaveEntitiesAsync());
        }
예제 #8
0
        public async Task HandleAsync(ActivityCreated @event)
        {
            try
            {
                await _activityRepository.AddAsync(new Activity
                {
                    Id          = @event.Id,
                    UserId      = @event.UserId,
                    Name        = @event.Name,
                    Category    = @event.Category,
                    Description = @event.Description,
                    CreatedAt   = @event.CreatedAt
                });

                _logger.LogInformation("Activity created {Activity}", @event.Name);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Failed to store activity {Activity}", @event.Name);
            }
        }
예제 #9
0
 public async Task AddAsync(Guid id, Guid userId, string category, string name, string description, DateTime createdAt)
 {
     var activity = new Activity(id, userId, name, category, description, createdAt);
     await _activityRepository.AddAsync(activity);
 }
예제 #10
0
        public async Task SeedAsync()
        {
            var users = await _userService.GetAllAsync();

            if (users.Any())
            {
                Logger.Trace("Data was already Initialized.");

                return;
            }

            Logger.Trace("Initializing data ...");

            await _accountService.SignUpAsync(Guid.NewGuid(), "PiotrK", "PiotrKantorowicz", "*****@*****.**", "secret", "avatar_02.png", "Developer", "admin");

            Logger.Trace($"Adding user: 1");
            await _accountService.SignUpAsync(Guid.NewGuid(), "SandraS", "Sandra Sernik", "*****@*****.**", "secret", "avatar_03.jpg", "Web Designer", "editor");

            Logger.Trace($"Adding user: 2");
            await _accountService.SignUpAsync(Guid.NewGuid(), "JanuszC", "Janusz Cieslak", "*****@*****.**", "secret", "avatar_03.jpg", "Quality Assurance", "editor");

            Logger.Trace($"Adding user: 3");
            await _accountService.SignUpAsync(Guid.NewGuid(), "Vorek", "Vorek Vox", "*****@*****.**", "secret", "avatar_04.jpg", "Developer", "user");

            Logger.Trace($"Adding user: 4");
            await _accountService.SignUpAsync(Guid.NewGuid(), "Artur", "Artut Kupczak", "*****@*****.**", "secret", "avatar_04.jpg", "kasztan", "user");

            Logger.Trace($"Adding user: 8");
            await _accountService.SignUpAsync(Guid.NewGuid(), "Kamil", "Kamil Kuczkeos", "*****@*****.**", "secret", "avatar_01.png", "Web Designer", "user");

            Logger.Trace($"Adding user: 6.");

            for (var i = 1; i <= 300; i++)
            {
                var r2    = CustomRandom(2);
                var r3    = CustomRandom(3);
                var r5    = CustomRandom(5);
                var r6    = CustomRandom(6);
                var hours = CustomRandom(24);

                var rndSchTitle       = SchTitle();
                var rndTkTitle        = TkTitle();
                var rndSchDescription = SchDescription();
                var rndTkDescription  = TkDescription();
                var rndlocation       = Location();
                var schtype           = ChooseSchType();
                var actType           = ChooseType();
                var priority          = ChoosePriority();
                var status            = ChooseStatus();
                var timeStart         = DateTime.UtcNow.AddHours(hours);
                var timeEnd           = DateTime.UtcNow.AddHours(hours);

                var schedule = new Schedule
                {
                    Title       = rndSchTitle,
                    Description = rndSchDescription,
                    Location    = rndlocation,
                    CreatorId   = r6,
                    Status      = status,
                    Type        = schtype,
                    TimeStart   = timeStart,
                    TimeEnd     = timeEnd,
                    Attendees   = new List <Attendee>
                    {
                        new Attendee {
                            ScheduleId = CustomRandom(6), UserId = CustomRandom(6)
                        },
                        new Attendee {
                            ScheduleId = CustomRandom(6), UserId = CustomRandom(6)
                        },
                        new Attendee {
                            ScheduleId = CustomRandom(6), UserId = CustomRandom(6)
                        }
                    }
                };

                await _scheduleRepository.AddAsync(schedule);

                Logger.Trace($"Adding schedule{i}");

                var activity = new Activity()
                {
                    Title       = rndTkTitle,
                    Description = rndTkDescription,
                    Location    = rndlocation,
                    CreatorId   = r6,
                    Status      = status,
                    Type        = actType,
                    Priority    = priority,
                    TimeStart   = timeStart,
                    TimeEnd     = timeEnd
                };

                await _activityRepository.AddAsync(activity);

                await _unitOfWork.SaveChangesAsync();

                Logger.Trace($"Adding Task{i}");
            }

            Logger.Trace("Data was initialized.");
        }
예제 #11
0
        public async Task HandleAsync(ActivityCreated @event)
        {
            await _activityRepository.AddAsync(new Activity(@event.Id, @event.Category, @event.UserId, @event.Name, @event.Description, @event.CreatedAt));

            Console.WriteLine($"Activity created: {@event.Name}");
        }