Example #1
0
        public CommonResult<CreateGroupResult> Create(CreateGroupRequest request)
        {
            using(var context = ContextFactory.GetDbContext(_dbConfiguration))
            {
                var user = context.Users.SingleOrDefault(u => u.UserName == request.UserName);

                if (user != null)
                {
                    var groupWithGivenName = context.Groups.FirstOrDefault(x => x.Name == request.Name);

                    if (groupWithGivenName == null)
                    {
                        var group = new Group
                        {
                            Name = request.Name,
                            Description = request.Description,
                            IsPrivate = request.IsPrivate,
                            Password = request.Password,
                            Owner = user
                        };

                        context.Groups.Add(group);

                        context.UserGroups.Add(new UserGroup
                        {
                            User = user,
                            Group = group
                        });

                        context.SaveChanges();

                        return CommonResult<CreateGroupResult>.Success(new CreateGroupResult { Id = group.Id });
                    }
                    else
                    {
                        return CommonResult<CreateGroupResult>.Failure("Grupa o podanej nazwie już istnieje.");
                    }
                }
                else
                {
                    return CommonResult<CreateGroupResult>.Failure("Nie znaleziono podanego użytkownika.");
                }
            }
        }
Example #2
0
        private void GetAdditionalDataForGroup(Group group, GroupData groupData, bool withOwner = false, bool withUsers = false, bool withTasks = false)
        {
            using (var context = ContextFactory.GetDbContext(_dbConfiguration))
            {
                if (withOwner)
                {
                    groupData.Owner = Mapper.Map<UserProfileData>(group.Owner);
                }
                if (withUsers)
                {
                    var userIdentifiers = context.UserGroups.Where(x => x.Group.Id == group.Id).Select(x => x.User.Id);

                    var users = new List<UserProfileData>();

                    foreach (var id in userIdentifiers)
                    {
                        var user = context.Users.FirstOrDefault(x => x.Id == id);

                        if(user != null)
                        {
                            var mappedUserData = Mapper.Map<UserProfileData>(user);
                            mappedUserData.ProfileImagePath = GenerateImagePath(user.ImageName);
                            users.Add(mappedUserData);
                        }
                    }

                    groupData.Users = users;
                }
                if (withTasks)
                {
                    groupData.Tasks = group.Tasks != null ? group.Tasks.Select(x => Mapper.Map<TaskListItemData>(x)) : new List<TaskListItemData>();

                    foreach (var task in groupData.Tasks)
                    {
                        task.GroupId = groupData.Id;
                        task.GroupName = groupData.Name;
                    }
                }
            }
        }