Skip to content

Commit

Permalink
Added WishList capability to list, get, create and addToWishList
Browse files Browse the repository at this point in the history
  • Loading branch information
Administrator authored and Administrator committed Sep 8, 2016
1 parent 644985b commit 7dadeb9
Show file tree
Hide file tree
Showing 29 changed files with 1,617 additions and 327 deletions.
27 changes: 27 additions & 0 deletions .gitignore
@@ -0,0 +1,27 @@
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
/Storefront/packages/
@@ -0,0 +1,50 @@
<!--
// Copyright 2016 Sitecore Corporation A/S
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
// except in compliance with the License. You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the
// License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
// either express or implied. See the License for the specific language governing permissions
// and limitations under the License.
-->

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>

<commerce.wishLists.createWishList patch:source="Reference.Storefront.WishLists.config">
<processor type="Sitecore.Reference.Storefront.Connect.Pipelines.WishLists.CreateWishList, Sitecore.Reference.Storefront.Powered.by.CommerceServer" patch:before="processor[@type='Sitecore.Commerce.Pipelines.WishLists.CreateWishList.TriggerWishListCreatedPageEvent, Sitecore.Commerce']" />
<processor type="Sitecore.Commerce.Pipelines.WishLists.CreateWishList.AddVisitorToEaPlan, Sitecore.Commerce">
<patch:delete/>
</processor>
</commerce.wishLists.createWishList>

<commerce.wishLists.addLinesToWishList patch:source="Reference.Storefront.WishLists.config">
<processor type="Sitecore.Reference.Storefront.Connect.Pipelines.WishLists.AddLinesToWishList, Sitecore.Reference.Storefront.Powered.by.CommerceServer" patch:before="processor[@type='Sitecore.Commerce.Pipelines.WishLists.AddLinesToWishList.TriggerLinesAddedToWishListPageEvent, Sitecore.Commerce']" />
</commerce.wishLists.addLinesToWishList>

<commerce.wishLists.getWishLists>
<processor type="Sitecore.Reference.Storefront.Connect.Pipelines.WishLists.GetWishLists, Sitecore.Reference.Storefront.Powered.by.CommerceServer" />
</commerce.wishLists.getWishLists>

<commerce.wishLists.getWishList>
<processor type="Sitecore.Reference.Storefront.Connect.Pipelines.WishLists.GetWishList, Sitecore.Reference.Storefront.Powered.by.CommerceServer" />
</commerce.wishLists.getWishList>

<translate.ordergrouptowishlistheader>
<processor type="Sitecore.Reference.Storefront.Connect.Pipelines.WishLists.TranslateOrderGroupToWishListHeader, Sitecore.Reference.Storefront.Powered.by.CommerceServer">
<param ref="entityFactory"/>
</processor>
</translate.ordergrouptowishlistheader>

<translate.ordergrouptowishlist>
<processor type="Sitecore.Reference.Storefront.Connect.Pipelines.WishLists.TranslateOrderGroupToWishList, Sitecore.Reference.Storefront.Powered.by.CommerceServer">
<param ref="entityFactory"/>
</processor>
</translate.ordergrouptowishlist>

</pipelines>
</sitecore>
</configuration>
36 changes: 25 additions & 11 deletions Storefront/CS/CSF/Commerce.Storefront.csproj
Expand Up @@ -33,6 +33,7 @@
<TargetFrameworkProfile />
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
<RestorePackages>true</RestorePackages>
<UseGlobalApplicationHostFile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand Down Expand Up @@ -91,6 +92,7 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\CommerceServer.Core.CrossTier.dll</HintPath>
</Reference>
<Reference Include="CommerceServer.Core.Orders.CrossTier, Version=10.0.0.0, Culture=neutral, PublicKeyToken=f5c79cb11734af7a" />
<Reference Include="CommerceServer.Core.Profiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=f5c79cb11734af7a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Lib\CommerceServer.Core.Profiles.dll</HintPath>
Expand Down Expand Up @@ -314,23 +316,18 @@
<Content Include="App_Config\CommerceServer.Core.config">
<SubType>Designer</SubType>
</Content>
<None Include="Properties\PublishProfiles\DynamicsRetail.pubxml" />
<Content Include="App_Config\Include\Reference.Storefront\Reference.Storefront.WishLists.config">
<SubType>Designer</SubType>
</Content>
<Content Include="MergeFiles\Merge.Commerce.Storefront.config">
<SubType>Designer</SubType>
</Content>
<Content Include="MergeFiles\Views\Merge.web.config">
<SubType>Designer</SubType>
</Content>
<Content Include="Solr_Schema.xml" />
<Content Include="web.config" />
<Content Include="Views\Storefront\Account\MyOrders.cshtml" />
<Content Include="Views\Storefront\Account\MyOrder.cshtml" />
<None Include="web.Debug.config">
<DependentUpon>web.config</DependentUpon>
</None>
<None Include="web.Release.config">
<DependentUpon>web.config</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<Compile Include="App_Start\BundleConfig.cs" />
Expand Down Expand Up @@ -370,6 +367,19 @@
<Compile Include="Connect\Pipelines\Payments\GetPaymentOptions.cs" />
<Compile Include="Connect\Pipelines\Shipping\GetShippingMethods.cs" />
<Compile Include="Connect\Pipelines\Shipping\GetShippingOptions.cs" />
<Compile Include="Connect\Pipelines\Utilities\OrderGroupUtility.cs" />
<Compile Include="Connect\Pipelines\Utilities\UserUtility.cs" />
<Compile Include="Connect\Pipelines\WishLists\AddLinesToWishList.cs" />
<Compile Include="Connect\Pipelines\Constants.cs" />
<Compile Include="Connect\Pipelines\WishLists\CreateWishList.cs" />
<Compile Include="Connect\Pipelines\WishLists\GetWishList.cs" />
<Compile Include="Connect\Pipelines\WishLists\GetWishLists.cs" />
<Compile Include="Connect\Pipelines\WishLists\TranslateOrderGroupToWishListHeader.cs" />
<Compile Include="Connect\Pipelines\WishLists\TranslateOrderGroupToWishList.cs" />
<Compile Include="Connect\Pipelines\WishLists\TranslateOrderGroupToWishListHeaderRequest.cs" />
<Compile Include="Connect\Pipelines\WishLists\TranslateOrderGroupToWishListRequest.cs" />
<Compile Include="Connect\Pipelines\WishLists\TranslateOrderGroupToWishListHeaderResult.cs" />
<Compile Include="Connect\Pipelines\WishLists\TranslateOrderGroupToWishListResult.cs" />
<Compile Include="Controllers\CartController.cs" />
<Compile Include="Controllers\CSBaseController.cs" />
<Compile Include="Controllers\LandingController.cs" />
Expand All @@ -379,6 +389,7 @@
<Compile Include="Controllers\NavigationSearchController.cs" />
<Compile Include="Controllers\SearchController.cs" />
<Compile Include="Controllers\SharedController.cs" />
<Compile Include="Controllers\WishListController.cs" />
<Compile Include="Default.aspx.cs">
<DependentUpon>Default.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
Expand Down Expand Up @@ -441,12 +452,15 @@
<Link>CustomDictionary.xml</Link>
</CodeAnalysisDictionary>
</ItemGroup>
<!--<PropertyGroup>
<ItemGroup>
<None Include="Properties\PublishProfiles\localhost.pubxml" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>-->
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!--<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />-->
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
Expand Down
25 changes: 25 additions & 0 deletions Storefront/CS/CSF/Connect/Pipelines/Constants.cs
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Sitecore.Reference.Storefront.Connect.Pipelines
{
/// <summary>
///
/// </summary>
public static class Constants
{
/// <summary>
///
/// </summary>
public const string WishListNameBeginning = "WishList_";

/// <summary>
///
/// </summary>
public const string TranslateOrderGroupToWishList = "translate.ordergrouptowishlist";
public const string TranslateOrderGroupToWishListHeader = "translate.ordergrouptowishlistheader";

}
}
49 changes: 49 additions & 0 deletions Storefront/CS/CSF/Connect/Pipelines/Utilities/OrderGroupUtility.cs
@@ -0,0 +1,49 @@
using CommerceServer.Core.Runtime.Orders;
using Sitecore.Commerce.Connect.CommerceServer.Pipelines;
using Sitecore.Commerce.Services;
using Sitecore.Globalization;
using Sitecore.Reference.Storefront.Connect.Pipelines.WishLists;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Sitecore.Reference.Storefront.Connect.Pipelines.Utilities
{
public static class OrderGroupUtility
{

/// <summary>
/// Executes vaidation of the wish list order group
/// </summary>
/// <param name="request"></param>
/// <param name="result"></param>
/// <returns></returns>
public static bool ValidOrderGroupForWishList(TranslateOrderGroupRequest request, CommerceResult result)
{
SystemMessage systemMessage = null;

if (!(request.OrderGroup is Basket))
{
systemMessage = new SystemMessage()
{
Message = Translate.Text("TranslateOrderGroupToEntity recieved an invalid OrderGroup type \"{0}\".", (object)request.OrderGroup.GetType().Name)
};
}
else if (request.OrderGroup.OrderForms != null && request.OrderGroup.OrderForms.Count > 1)
{
systemMessage = new SystemMessage()
{
Message = Translate.Text("TranslateOrderGroupToEntity recieved an invalid OrderGroup with more than one OrderForm \"{0}\".", request.OrderGroup.OrderForms.Count)
};
}
else
{
return true;
}

result.SystemMessages.Add(systemMessage);
return false;
}
}
}
41 changes: 41 additions & 0 deletions Storefront/CS/CSF/Connect/Pipelines/Utilities/UserUtility.cs
@@ -0,0 +1,41 @@
using CommerceServer.Core.Runtime.Profiles;
using Sitecore.Commerce.Connect.CommerceServer;
using Sitecore.Commerce.Connect.CommerceServer.Profiles.Pipelines;
using Sitecore.Pipelines;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Sitecore.Reference.Storefront.Connect.Pipelines.Utilities
{
/// <summary>
///
/// </summary>
public static class UserUtility
{
/// <summary>Resolves the user identifier.</summary>
/// <param name="givenUserId">The given user identifier.</param>
/// <param name="csUserId">The cs user identifier.</param>
/// <returns>true if the userId has been resolved; Otherwise false.</returns>
public static bool ResolveUserId(string givenUserId, out Guid csUserId)
{
bool flag = Guid.TryParse(givenUserId, out csUserId);
if (!flag)
{
GetProfileArgs getProfileArgs = new GetProfileArgs();
getProfileArgs.InputParameters.Name = "UserObject";
getProfileArgs.InputParameters.Id = givenUserId;
getProfileArgs.InputParameters.Field = CommerceTypeLoader.ConfigurationProvider.CurrentConfiguration.Profiles.SitecoreLinkProperty;
CorePipeline.Run("GetProfile", (PipelineArgs)getProfileArgs);
Profile commerceProfile = getProfileArgs.OutputParameters.CommerceProfile;
if (commerceProfile != null)
{
csUserId = Guid.Parse(commerceProfile["GeneralInfo.user_id"].Value as string);
flag = true;
}
}
return flag;
}
}
}

0 comments on commit 7dadeb9

Please sign in to comment.