├── .gitattributes
├── .gitignore
├── LICENSE
├── ProductListCodeSample.sln
├── ProductListCodeSample
├── AppIcon.png
├── AppManifest.xml
├── Features
│ └── Feature1
│ │ ├── Feature1.Template.xml
│ │ └── Feature1.feature
├── Package
│ ├── Package.Template.xml
│ └── Package.package
├── ProductListCodeSample.csproj
└── Products
│ ├── Elements.xml
│ ├── ProductsInstance
│ ├── Elements.xml
│ └── SharePointProjectItem.spdata
│ ├── Schema.xml
│ └── SharePointProjectItem.spdata
├── ProductListCodeSampleWeb
├── App_Start
│ ├── BundleConfig.cs
│ ├── FilterConfig.cs
│ └── RouteConfig.cs
├── Content
│ ├── Site.css
│ ├── bootstrap.css
│ └── bootstrap.min.css
├── Controllers
│ └── HomeController.cs
├── Filters
│ └── SharePointContextFilterAttribute.cs
├── Global.asax
├── Global.asax.cs
├── Models
│ └── Product.cs
├── ProductListCodeSampleWeb.csproj
├── Project_Readme.html
├── Properties
│ └── AssemblyInfo.cs
├── Scripts
│ ├── _references.js
│ ├── app.js
│ ├── bootstrap.js
│ ├── bootstrap.min.js
│ ├── jquery-1.10.2.intellisense.js
│ ├── jquery-1.10.2.js
│ ├── jquery-1.10.2.min.js
│ ├── jquery-1.10.2.min.map
│ ├── modernizr-2.6.2.js
│ ├── respond.js
│ ├── respond.min.js
│ └── spcontext.js
├── SharePointContext.cs
├── SharePointService.cs
├── TokenHelper.cs
├── Views
│ ├── Home
│ │ ├── About.cshtml
│ │ ├── Contact.cshtml
│ │ ├── Delete.cshtml
│ │ ├── Edit.cshtml
│ │ └── Index.cshtml
│ ├── Shared
│ │ ├── Error.cshtml
│ │ └── _Layout.cshtml
│ ├── Web.config
│ └── _ViewStart.cshtml
├── Web.Debug.config
├── Web.Release.config
├── Web.config
├── favicon.ico
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ └── glyphicons-halflings-regular.woff
└── packages.config
└── README.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Dd]ebugPublic/
12 | [Rr]elease/
13 | x64/
14 | build/
15 | bld/
16 | [Bb]in/
17 | [Oo]bj/
18 |
19 | # MSTest test Results
20 | [Tt]est[Rr]esult*/
21 | [Bb]uild[Ll]og.*
22 |
23 | #NUNIT
24 | *.VisualState.xml
25 | TestResult.xml
26 |
27 | # Build Results of an ATL Project
28 | [Dd]ebugPS/
29 | [Rr]eleasePS/
30 | dlldata.c
31 |
32 | *_i.c
33 | *_p.c
34 | *_i.h
35 | *.ilk
36 | *.meta
37 | *.obj
38 | *.pch
39 | *.pdb
40 | *.pgc
41 | *.pgd
42 | *.rsp
43 | *.sbr
44 | *.tlb
45 | *.tli
46 | *.tlh
47 | *.tmp
48 | *.tmp_proj
49 | *.log
50 | *.vspscc
51 | *.vssscc
52 | .builds
53 | *.pidb
54 | *.svclog
55 | *.scc
56 |
57 | # Chutzpah Test files
58 | _Chutzpah*
59 |
60 | # Visual C++ cache files
61 | ipch/
62 | *.aps
63 | *.ncb
64 | *.opensdf
65 | *.sdf
66 | *.cachefile
67 |
68 | # Visual Studio profiler
69 | *.psess
70 | *.vsp
71 | *.vspx
72 |
73 | # TFS 2012 Local Workspace
74 | $tf/
75 |
76 | # Guidance Automation Toolkit
77 | *.gpState
78 |
79 | # ReSharper is a .NET coding add-in
80 | _ReSharper*/
81 | *.[Rr]e[Ss]harper
82 | *.DotSettings.user
83 |
84 | # JustCode is a .NET coding addin-in
85 | .JustCode
86 |
87 | # TeamCity is a build add-in
88 | _TeamCity*
89 |
90 | # DotCover is a Code Coverage Tool
91 | *.dotCover
92 |
93 | # NCrunch
94 | *.ncrunch*
95 | _NCrunch_*
96 | .*crunch*.local.xml
97 |
98 | # MightyMoose
99 | *.mm.*
100 | AutoTest.Net/
101 |
102 | # Web workbench (sass)
103 | .sass-cache/
104 |
105 | # Installshield output folder
106 | [Ee]xpress/
107 |
108 | # DocProject is a documentation generator add-in
109 | DocProject/buildhelp/
110 | DocProject/Help/*.HxT
111 | DocProject/Help/*.HxC
112 | DocProject/Help/*.hhc
113 | DocProject/Help/*.hhk
114 | DocProject/Help/*.hhp
115 | DocProject/Help/Html2
116 | DocProject/Help/html
117 |
118 | # Click-Once directory
119 | publish/
120 |
121 | # Publish Web Output
122 | *.[Pp]ublish.xml
123 | *.azurePubxml
124 |
125 | # NuGet Packages Directory
126 | packages/
127 | ## TODO: If the tool you use requires repositories.config uncomment the next line
128 | #!packages/repositories.config
129 |
130 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
131 | # This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
132 | !packages/build/
133 |
134 | # Windows Azure Build Output
135 | csx/
136 | *.build.csdef
137 |
138 | # Windows Store app package directory
139 | AppPackages/
140 |
141 | # Others
142 | sql/
143 | *.Cache
144 | ClientBin/
145 | [Ss]tyle[Cc]op.*
146 | ~$*
147 | *~
148 | *.dbmdl
149 | *.dbproj.schemaview
150 | *.pfx
151 | *.publishsettings
152 | node_modules/
153 |
154 | # RIA/Silverlight projects
155 | Generated_Code/
156 |
157 | # Backup & report files from converting an old project file to a newer
158 | # Visual Studio version. Backup files are not needed, because we have git ;-)
159 | _UpgradeReport_Files/
160 | Backup*/
161 | UpgradeLog*.XML
162 | UpgradeLog*.htm
163 |
164 | # SQL Server files
165 | *.mdf
166 | *.ldf
167 |
168 | # Business Intelligence projects
169 | *.rdl.data
170 | *.bim.layout
171 | *.bim_*.settings
172 |
173 | # Microsoft Fakes
174 | FakesAssemblies/
175 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {yyyy} {name of copyright owner}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
--------------------------------------------------------------------------------
/ProductListCodeSample.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2013
4 | VisualStudioVersion = 12.0.30501.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductListCodeSample", "ProductListCodeSample\ProductListCodeSample.csproj", "{4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductListCodeSampleWeb", "ProductListCodeSampleWeb\ProductListCodeSampleWeb.csproj", "{6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
19 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
20 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}.Release|Any CPU.Build.0 = Release|Any CPU
21 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}.Release|Any CPU.Deploy.0 = Release|Any CPU
22 | {6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 | {6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}.Release|Any CPU.Build.0 = Release|Any CPU
26 | EndGlobalSection
27 | GlobalSection(SolutionProperties) = preSolution
28 | HideSolutionNode = FALSE
29 | EndGlobalSection
30 | EndGlobal
31 |
--------------------------------------------------------------------------------
/ProductListCodeSample/AppIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OfficeDev/Product-List-Code-Sample/a8bf2134b1de93394c1e6d03b680043af1b75472/ProductListCodeSample/AppIcon.png
--------------------------------------------------------------------------------
/ProductListCodeSample/AppManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 | Product List Code Sample
11 | ~remoteAppUrl/?{StandardTokens}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Features/Feature1/Feature1.Template.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Features/Feature1/Feature1.feature:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Package/Package.Template.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Package/Package.package:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ProductListCodeSample/ProductListCodeSample.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {4CADEFA6-48C6-4D1E-9D5B-34DD6A1F8DD0}
8 | Library
9 | Properties
10 | SharePointAppSample
11 | SharePointAppSample
12 | v4.5
13 | 15.0
14 | 512
15 | {C1CDDADD-2546-481F-9697-4EA41081F2FC};{14822709-B5A1-4724-98CA-57A101D1B079};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
16 | False
17 | SharePointApp
18 | {0e713410-3d88-4490-88ff-936799d27aad}
19 | {a3c44afa-bfd1-4b23-8a7f-02f282ed9c61}
20 | {63901990-03ff-410a-9591-f102420d17aa}
21 | {a06aae98-3d5a-4a74-8eaf-cf271e74c457}
22 | {a4f717d5-f194-4cc4-abfb-19883096305a}
23 |
24 |
25 | true
26 | full
27 | false
28 | bin\Debug\
29 | DEBUG;TRACE
30 | prompt
31 | 4
32 | false
33 |
34 |
35 | pdbonly
36 | true
37 | bin\Release\
38 | TRACE
39 | prompt
40 | 4
41 | false
42 |
43 |
44 |
45 | manifest-icon
46 |
47 |
48 | Feature1.feature
49 |
50 |
51 | Package.package
52 |
53 |
54 | Designer
55 |
56 |
57 |
58 |
59 |
60 |
61 | Designer
62 |
63 |
64 |
65 |
66 | {6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}
67 | ProductListCodeSampleWeb
68 | True
69 | Web
70 | SharePointWebProjectOutput
71 | SharePointAppSampleWeb
72 | False
73 |
74 |
75 |
76 |
77 | {8aa51de9-9486-48f4-9ba7-7834bbd8de05}
78 |
79 |
80 | {17aba39d-d320-4eb7-9a89-46eb2fa18e3a}
81 |
82 |
83 | {8a7a7560-8073-4aaa-adb3-e53fc346ccd6}
84 |
85 |
86 | {5d3afbe2-3f26-4104-9a6e-e5de01b5ca19}
87 |
88 |
89 |
90 |
91 | 10.0
92 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
93 |
94 |
95 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Products/Elements.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Products/ProductsInstance/Elements.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Product 1
8 | Description for Product 1
9 | $7.99
10 |
11 |
12 | Product 2
13 | Description for Product 2
14 | $5.99
15 |
16 |
17 | Product 3
18 | Description for Product 3
19 | $9.99
20 |
21 |
22 | Product 3
23 | Description for Product 3
24 | $6.99
25 |
26 |
27 | Product 4
28 | Description for Product 4
29 | $8.99
30 |
31 |
32 | Product 5
33 | Description for Product 5
34 | $8.99
35 |
36 |
37 | Product 6
38 | Description for Product 6
39 | $9.99
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Products/ProductsInstance/SharePointProjectItem.spdata:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Products/Schema.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | main.xsl
19 | 30
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | main.xsl
36 | clienttemplates.js
37 | 30
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/ProductListCodeSample/Products/SharePointProjectItem.spdata:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/App_Start/BundleConfig.cs:
--------------------------------------------------------------------------------
1 | using System.Web;
2 | using System.Web.Optimization;
3 |
4 | namespace SharePointAppSampleWeb
5 | {
6 | public class BundleConfig
7 | {
8 | // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
9 | public static void RegisterBundles(BundleCollection bundles)
10 | {
11 | bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
12 | "~/Scripts/jquery-{version}.js"));
13 |
14 | // Use the development version of Modernizr to develop with and learn from. Then, when you're
15 | // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
16 | bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
17 | "~/Scripts/modernizr-*"));
18 |
19 | bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
20 | "~/Scripts/bootstrap.js",
21 | "~/Scripts/respond.js"));
22 |
23 | bundles.Add(new ScriptBundle("~/bundles/spcontext").Include(
24 | "~/Scripts/spcontext.js"));
25 |
26 | bundles.Add(new StyleBundle("~/Content/css").Include(
27 | "~/Content/bootstrap.css",
28 | "~/Content/site.css"));
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/App_Start/FilterConfig.cs:
--------------------------------------------------------------------------------
1 | using System.Web;
2 | using System.Web.Mvc;
3 |
4 | namespace SharePointAppSampleWeb
5 | {
6 | public class FilterConfig
7 | {
8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters)
9 | {
10 | filters.Add(new HandleErrorAttribute());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/App_Start/RouteConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Web;
5 | using System.Web.Mvc;
6 | using System.Web.Routing;
7 |
8 | namespace SharePointAppSampleWeb
9 | {
10 | public class RouteConfig
11 | {
12 | public static void RegisterRoutes(RouteCollection routes)
13 | {
14 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
15 |
16 | routes.MapRoute(
17 | name: "Default",
18 | url: "{controller}/{action}/{id}",
19 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
20 | );
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Content/Site.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 50px;
3 | padding-bottom: 20px;
4 | }
5 |
6 | /* Set padding to keep content from hitting the edges */
7 | .body-content {
8 | padding-left: 15px;
9 | padding-right: 15px;
10 | }
11 |
12 | /* Set width on the form input elements since they're 100% wide by default */
13 | input,
14 | select,
15 | textarea {
16 | max-width: 280px;
17 | }
18 |
19 | /* styles for validation helpers */
20 | .field-validation-error {
21 | color: #b94a48;
22 | }
23 |
24 | .field-validation-valid {
25 | display: none;
26 | }
27 |
28 | input.input-validation-error {
29 | border: 1px solid #b94a48;
30 | }
31 |
32 | input[type="checkbox"].input-validation-error {
33 | border: 0 none;
34 | }
35 |
36 | .validation-summary-errors {
37 | color: #b94a48;
38 | }
39 |
40 | .validation-summary-valid {
41 | display: none;
42 | }
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Controllers/HomeController.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.SharePoint.Client;
2 | using SharePointAppSampleWeb.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Net;
7 | using System.Web;
8 | using System.Web.Mvc;
9 |
10 | namespace SharePointAppSampleWeb.Controllers
11 | {
12 | public class HomeController : Controller
13 | {
14 | [SharePointContextFilter]
15 | public ActionResult Index()
16 | {
17 | var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
18 |
19 | ViewBag.Username = SharePointService.GetUserName(spContext);
20 |
21 | CamlQuery queryProducts = new CamlQuery();
22 | queryProducts.ViewXml = @"
23 |
24 | ";
25 |
26 | List products = SharePointService.GetProducts(spContext, queryProducts);
27 |
28 | return View(products);
29 | }
30 |
31 | [SharePointContextFilter]
32 | public ActionResult Edit(int id)
33 | {
34 | var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
35 |
36 | Product product = SharePointService.GetProductDetails(spContext, id);
37 | return View(product);
38 | }
39 |
40 | [SharePointContextFilter]
41 | [HttpPost]
42 | public ActionResult Edit(Product product)
43 | {
44 | var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
45 |
46 | SharePointService.UpdateProduct(spContext, product);
47 | return RedirectToAction("Index", new { SPHostUrl = SharePointContext.GetSPHostUrl(HttpContext.Request).AbsoluteUri });
48 | }
49 |
50 | [SharePointContextFilter]
51 | public ActionResult Delete(int id)
52 | {
53 | var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
54 |
55 | Product product = SharePointService.GetProductDetails(spContext, id);
56 | return View(product);
57 | }
58 |
59 | [SharePointContextFilter]
60 | [HttpPost]
61 | public ActionResult Delete(Product product)
62 | {
63 | var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
64 |
65 | SharePointService.DeleteProduct(spContext, product);
66 | return RedirectToAction("Index", new { SPHostUrl = SharePointContext.GetSPHostUrl(HttpContext.Request).AbsoluteUri });
67 | }
68 |
69 | [HttpPost]
70 | [SharePointContextFilter]
71 | public ActionResult AddProduct(string title,string description,string price)
72 | {
73 | HttpStatusCodeResult httpCode = new HttpStatusCodeResult(HttpStatusCode.MethodNotAllowed);
74 |
75 | var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
76 |
77 | Product newProduct = new Product();
78 | newProduct.Title = title;
79 | newProduct.Description = description;
80 | newProduct.Price = price;
81 |
82 | if (SharePointService.AddProduct(spContext, newProduct))
83 | {
84 | httpCode = new HttpStatusCodeResult(HttpStatusCode.Created);
85 | }
86 |
87 | return httpCode;
88 | }
89 |
90 | public ActionResult About()
91 | {
92 | ViewBag.Message = "Your application description page.";
93 |
94 | return View();
95 | }
96 |
97 | public ActionResult Contact()
98 | {
99 | ViewBag.Message = "Your contact page.";
100 |
101 | return View();
102 | }
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Filters/SharePointContextFilterAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Web.Mvc;
3 |
4 | namespace SharePointAppSampleWeb
5 | {
6 | ///
7 | /// SharePoint action filter attribute.
8 | ///
9 | public class SharePointContextFilterAttribute : ActionFilterAttribute
10 | {
11 | public override void OnActionExecuting(ActionExecutingContext filterContext)
12 | {
13 | if (filterContext == null)
14 | {
15 | throw new ArgumentNullException("filterContext");
16 | }
17 |
18 | Uri redirectUrl;
19 | switch (SharePointContextProvider.CheckRedirectionStatus(filterContext.HttpContext, out redirectUrl))
20 | {
21 | case RedirectionStatus.Ok:
22 | return;
23 | case RedirectionStatus.ShouldRedirect:
24 | filterContext.Result = new RedirectResult(redirectUrl.AbsoluteUri);
25 | break;
26 | case RedirectionStatus.CanNotRedirect:
27 | filterContext.Result = new ViewResult { ViewName = "Error" };
28 | break;
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Global.asax:
--------------------------------------------------------------------------------
1 | <%@ Application Codebehind="Global.asax.cs" Inherits="SharePointAppSampleWeb.MvcApplication" Language="C#" %>
2 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Global.asax.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Web;
5 | using System.Web.Mvc;
6 | using System.Web.Optimization;
7 | using System.Web.Routing;
8 |
9 | namespace SharePointAppSampleWeb
10 | {
11 | public class MvcApplication : System.Web.HttpApplication
12 | {
13 | protected void Application_Start()
14 | {
15 | AreaRegistration.RegisterAllAreas();
16 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
17 | RouteConfig.RegisterRoutes(RouteTable.Routes);
18 | BundleConfig.RegisterBundles(BundleTable.Bundles);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Models/Product.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Web;
5 |
6 | namespace SharePointAppSampleWeb.Models
7 | {
8 | public class Product
9 | {
10 | public int Id { get; set; }
11 | public string Title { get; set; }
12 |
13 | public string Description { get; set; }
14 |
15 | public string Price { get; set; }
16 | }
17 | }
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/ProductListCodeSampleWeb.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 |
8 |
9 | 2.0
10 | {6F93EA5E-DF16-48D0-8D71-BC6ECBC06EC6}
11 | {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
12 | Library
13 | Properties
14 | SharePointAppSampleWeb
15 | SharePointAppSampleWeb
16 | v4.5
17 | false
18 | true
19 | 44320
20 |
21 |
22 |
23 | 15.0
24 |
25 |
26 | true
27 | full
28 | false
29 | bin\
30 | DEBUG;TRACE
31 | prompt
32 | 4
33 |
34 |
35 | pdbonly
36 | true
37 | bin\
38 | TRACE
39 | prompt
40 | 4
41 |
42 |
43 |
44 |
45 | True
46 |
47 |
48 | True
49 |
50 |
51 | True
52 |
53 |
54 | True
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | True
79 | ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll
80 |
81 |
82 |
83 |
84 |
85 |
86 | True
87 | ..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.Helpers.dll
88 |
89 |
90 | True
91 | ..\packages\Microsoft.AspNet.Mvc.5.0.0\lib\net45\System.Web.Mvc.dll
92 |
93 |
94 | ..\packages\Microsoft.AspNet.Web.Optimization.1.1.1\lib\net40\System.Web.Optimization.dll
95 |
96 |
97 | True
98 | ..\packages\Microsoft.AspNet.Razor.3.0.0\lib\net45\System.Web.Razor.dll
99 |
100 |
101 | True
102 | ..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.dll
103 |
104 |
105 | True
106 | ..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.Deployment.dll
107 |
108 |
109 | True
110 | ..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.WebPages.Razor.dll
111 |
112 |
113 | True
114 | ..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll
115 |
116 |
117 | True
118 | ..\packages\WebGrease.1.5.2\lib\WebGrease.dll
119 |
120 |
121 | True
122 | ..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 | Global.asax
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 | Web.config
164 |
165 |
166 | Web.config
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 | 10.0
189 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 | True
202 | True
203 | 22066
204 | /
205 | http://localhost:22066/
206 | False
207 | False
208 |
209 |
210 | False
211 |
212 |
213 |
214 |
215 |
221 |
--------------------------------------------------------------------------------
/ProductListCodeSampleWeb/Project_Readme.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Your ASP.NET application
6 |
95 |
96 |
97 |
98 |
99 |
Your ASP.NET application
100 |
Congratulations! You've created a project
101 |
102 |
103 |
104 |
105 |
This application consists of:
106 |
107 |
Sample pages showing basic nav between Home, About, and Contact
Apps for SharePoint - Embracing web standards, the new cloud app model gives you maximum choice and flexibility to build a new class of apps for SharePoint using familiar languages, tools, and hosting services.