public void PublishNewShopGroupStroy(ShopGroup group)
        {
            if (group == null) return;

            var adminUser = group.Admin;
            var productList = _productsApi.Get(new List<long> { group.ProductId });

            var link = "[Join Group Now](" + _routes.JoinGroup(group.Id)+ ")";
            var result = _wallPublishApi.PublishStory("Shop Group", adminUser.Name + " had created new Shop Group: " + group.Name +". "+ link , productList[0].ImageUrl);
        }
        private ShopGroupHomeScreenModel ToModel(GroupMember groupMember, UserDto userDto,ProductDto product, ShopGroup group )
        {
            return new ShopGroupHomeScreenModel
                {
                    Id = userDto.Id,
                    MemberName = userDto.Name,
                    ImageUrl = userDto.ImageUrl,
                    Product = product,
                    Group = group,
                    Token = _platformTokenProvider.Get(),
                    ProfileUrl = new Uri(_platformSettings.SywWebSiteUrl, userDto.ProfileUrl),
                    Followers = _usersApi.GetFollowers(userDto.Id),

                    ShopGroups = groupMember != null ?
                            groupMember.Groups :
                            null
                };
        }
        public BuildShopGroupResult CreateNewShopGroup(FormCollection formValues)
        {
            if (!_shopGroupFromInputValidator.IsInputValid(formValues, new[] { InputFiled.Token, InputFiled.ProductId, InputFiled.GroupName }))
                return BuildShopGroupResult.FailInputError;

            var tokenStr = _shopGroupFromInputValidator.GetStringKey(InputFiled.Token, formValues);
            _platformTokenProvider.Set(tokenStr);

            var user = _usersApi.Current();
            if (user == null) return BuildShopGroupResult.FailUserNotKnown;

            try
            {
                var adminUser = _groupMemberRepository.GroupMember(user.Id);
                var productId = _shopGroupFromInputValidator.GetLongKey(InputFiled.ProductId, formValues);
                var shopGroupName = _shopGroupFromInputValidator.GetStringKey(InputFiled.GroupName, formValues);
                var newShopGroup = new ShopGroup
                {
                    Name = shopGroupName,
                    Admin = adminUser,
                    ProductId = productId
                };
                _shopGroupRepository.AddOrSaveShopGroup(newShopGroup);
                _shopGroupWallPublishApi.PublishNewShopGroupStroy(newShopGroup);

                return BuildShopGroupResult.Success;

            }
            catch
            {

                return BuildShopGroupResult.FailGeneral;
            }
        }
 public void SendWallPsotToFriends(ShopGroup group, GroupMember member)
 {
     throw new NotImplementedException();
 }
 public void AddOrSaveShopGroup(ShopGroup group)
 {
     _sessionProvider.WithSession(session => session.SaveOrUpdate(group));
 }