Advertisement
Guest User

Untitled

a guest
Dec 24th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.49 KB | None | 0 0
  1. public class ProductDetailsSaleModel
  2. {
  3. private Packsize _selectedAnswer;
  4. public Product Product { get; set; }
  5.  
  6. public Packsize SelectedAnswer
  7. {
  8. get
  9. {
  10. return _selectedAnswer;
  11. }
  12. set
  13. {
  14. _selectedAnswer = value;
  15. }
  16. }
  17.  
  18. public ICollection<Product> RelatedProducts { get; set; }
  19. }
  20.  
  21. public ActionResult Details(Guid? id)
  22. {
  23. if (id == null)
  24. {
  25. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  26. }
  27. Product product = db.Products.Include(model => model.Category)
  28. .Include(model => model.AdditionalInfo)
  29. .Include(model => model.Packsizes)
  30. .Include(model => model.Files)
  31. .First(m => m.Identity == id);
  32. if (product == null)
  33. {
  34. return HttpNotFound();
  35. }
  36. var detail = new ProductDetailsSaleModel();
  37. detail.Product = product;
  38. if (product.Packsizes.Any())
  39. detail.SelectedAnswer = product.Packsizes.OrderBy(m => m.Name).First();
  40. detail.RelatedProducts = db.Products.Where(m => m.Catgoryguid == product.Catgoryguid).ToList();
  41. ViewBag.RelatedProducts = db.Products.Where(m => m.Catgoryguid == product.Catgoryguid).ToList();
  42. return View(detail);
  43. }
  44.  
  45. public void AddToCart(ProductBase service)
  46. {
  47. var cartItem =
  48. _db.Carts.SingleOrDefault(c => c.CartId == ShoppingCartId && c.ProductGuid == service.Identity);
  49. if (cartItem == null)
  50. {
  51. cartItem = new ShoppingCartItem
  52. {
  53. ProductGuid = service.Identity,
  54. CartId = ShoppingCartId,
  55. Count = 1
  56. };
  57. cartItem.CreationModificationType.SetCreation();
  58. _db.Carts.Add(cartItem);
  59. }
  60. else
  61. {
  62. cartItem.Count++;
  63. }
  64. _db.SaveChanges();
  65. }
  66.  
  67. @using EntitiesICDD.ProductEntities
  68. @using EnumsICDD
  69. @using Neefi_Website.Extentions
  70. @model Neefi_Website.Models.ProductDetailsSaleModel
  71.  
  72. @{
  73. ViewBag.Title = "Details";
  74. Layout = "~/Views/Shared/_LayoutDefaultPage.cshtml";
  75. }
  76.  
  77. <!-- Page Title
  78. ============================================= -->
  79. <!-- Page Title
  80. ============================================= -->
  81. <section id="page-title" class="page-title-pattern">
  82.  
  83. <div class="container clearfix">
  84. <h1>9ct W/G diamond cluster pendant</h1>
  85. <ol class="breadcrumb">
  86. <li><a href=@Url.Action("Index", "Home")>Home</a></li>
  87. <li><a href=@Url.Action("Shop","Products")>Shop</a></li>
  88. <li><a href=@Url.Action("ShopCategory","Products", new { id = Model.Product.Identity})>@Model.Product.Category.Name</a></li>
  89. <li class="active">@Model.Product.Name</li>
  90. </ol>
  91. </div>
  92.  
  93. </section><!-- #page-title end -->
  94.  
  95. <div class="content-wrap">
  96.  
  97. <div class="container clearfix">
  98.  
  99. <div class="single-product">
  100.  
  101. <div class="product">
  102.  
  103. <div class="col_two_fifth">
  104.  
  105. <!-- Product Single - Gallery
  106. ============================================= -->
  107. <div class="product-image">
  108. <div class="fslider" data-pagi="false" data-arrows="false" data-thumbs="true">
  109. <div class="flexslider">
  110. <div class="slider-wrap" data-lightbox="gallery">
  111. @if (Model.Product.Files.Any(x => x.FileType == FileType.CoverPhoto))
  112. {
  113. <div class="slide" data-thumb="/img/uploads/products/listImages/@Model.Product.Files.First(x => x.FileType == FileType.CoverPhoto).FileName">
  114. <a href="~/img/uploads/products/normalImages/@Model.Product.Files.First(x => x.FileType == FileType.CoverPhoto).FileName" title="@Model.Product.Name - Cover Image" data-lightbox="gallery-item"><img src="~/img/uploads/products/normalImages/@Model.Product.Files.First(x => x.FileType == FileType.CoverPhoto).FileName" alt="@Model.Product.Name"></a>
  115. </div>
  116. }
  117. else
  118. {
  119. <div class="slide" data-thumb="/img/uploads/products/listImages/noImage.png">
  120. <a href="~/img/uploads/products/normalImages/NoPhotoAvailable.jpg" title="No Image Cover Photo" data-lightbox="gallery-item"><img src="~/img/uploads/shop/normalImages/NoPhotoAvailable.jpg" alt="NoImage"></a>
  121. </div>
  122. }
  123. @if (Model.Product.Files.Any(x => x.FileType == FileType.Photo))
  124. {
  125. foreach (var item in Model.Product.Files.Where(x => x.FileType == FileType.Photo))
  126. {
  127. <div class="slide" data-thumb="/img/uploads/products/listImages/@item.FileName">
  128. <a href="~/img/uploads/products/normalImages/@item.FileName" title="@item.FileName - Photo View" data-lightbox="gallery-item"><img src="~/img/uploads/products/normalImages/@item.FileName" alt="@item.FileName"></a>
  129. </div>
  130. }
  131. }
  132. </div>
  133. </div>
  134. </div>
  135. @if (Model.Product.Discount != 0)
  136. {
  137. <div class="sale-flash">@Model.Product.Discount% Off*</div>
  138. }
  139. else if (Model.Product.Special)
  140. {
  141. <div class="sale-flash">Sale!</div>
  142. }
  143. </div><!-- Product Single - Gallery End -->
  144.  
  145. </div>
  146.  
  147. <div class="col_two_fifth product-desc">
  148.  
  149. <!-- Product Single - Price
  150. ============================================= -->
  151. <div class="product-price">
  152. @if (!Model.Product.Packsizes.Any())
  153. {
  154. if (Model.Product.OldPrice != 0 && Model.Product.OldPrice < Model.Product.Price)
  155. {
  156. <del>@Model.Product.OldPrice.ToString("C")</del>
  157. <ins>@Model.Product.Price.ToString("C")</ins>
  158. }
  159. else
  160. {
  161. @Model.Product.Price.ToString("C")
  162. }
  163. }
  164. else
  165. {
  166. <div id="pricePro">@Model.Product.Packsizes.OrderBy(m => m.Product.Name).First().Price.ToString("c")</div>
  167. }
  168.  
  169. </div><!-- Product Single - Price End -->
  170. <!-- Product Single - Rating
  171. ============================================= -->
  172. <div class="product-rating">
  173. <i class="icon-star3"></i>
  174. <i class="icon-star3"></i>
  175. <i class="icon-star3"></i>
  176. <i class="icon-star-half-full"></i>
  177. <i class="icon-star-empty"></i>
  178. </div><!-- Product Single - Rating End -->
  179.  
  180. <div class="clear"></div>
  181. <div class="line"></div>
  182.  
  183. <!-- Product Single - Quantity & Cart Button
  184. ============================================= -->
  185.  
  186. <a href="@Url.Action("UnderConstruction", "Home")" class="add-to-cart button notopmargin">Compare</a>
  187. <a href="@Url.Action("UnderConstruction", "Home")" class="add-to-cart button notopmargin" style="width: auto">Hint</a>
  188. <a href="@Url.Action("AddToCart", "ShoppingCart", new {id = Model.Product.Identity, pack = Model.SelectedAnswer.Identity})" class="add-to-cart button button-3d">Add to Cart</a>
  189.  
  190. <br/>
  191.  
  192. @Html.Hidden("id", Model.Product.Identity)
  193. @Html.HiddenFor(m => m.SelectedAnswer)
  194.  
  195. <div class="clear"></div>
  196. <div class="line"></div>
  197.  
  198. <!-- Product Single - Short Description
  199. ============================================= -->
  200. <p>@Model.Product.Description</p>
  201.  
  202. @if (Model.Product.Packsizes.Any())
  203. {
  204. <table class="table table-striped table-bordered">
  205. <tbody>
  206. @foreach (Packsize item in Model.Product.Packsizes.OrderBy(m => m.Name))
  207. {
  208. <tr>
  209. <td style="width: 10%">@Html.RadioButtonFor(m => m.SelectedAnswer, item, new { pack = item})</td>
  210. <td>@item.Name</td>
  211. <td><strong style="color: red">@item.Price.ToString("C")</strong></td>
  212. </tr>
  213. }
  214. </tbody>
  215. </table>
  216. }
  217.  
  218. <!-- Product Single - Meta
  219. ============================================= -->
  220. <div class="panel panel-default product-meta">
  221. <div class="panel-body">
  222. <span itemprop="productID" class="sku_wrapper">ID: <span id="identity" class="sku">@Model.Product.Identity</span></span>
  223. <span class="posted_in">Category: <a href="#" rel="tag">@Model.Product.Category.Name</a>.</span>
  224. <span class="tagged_as">Name: <a href="#" rel="tag">@Model.Product.Name</a>.</span>
  225. </div>
  226. </div><!-- Product Single - Meta End -->
  227. <!-- Product Single - Share
  228. ============================================= -->
  229. <div class="si-share noborder clearfix">
  230. <span>Share:</span>
  231. <div>
  232. <a href="#" class="social-icon si-borderless si-facebook">
  233. <i class="icon-facebook"></i>
  234. <i class="icon-facebook"></i>
  235. </a>
  236. <a href="#" class="social-icon si-borderless si-twitter">
  237. <i class="icon-twitter"></i>
  238. <i class="icon-twitter"></i>
  239. </a>
  240. <a href="#" class="social-icon si-borderless si-pinterest">
  241. <i class="icon-pinterest"></i>
  242. <i class="icon-pinterest"></i>
  243. </a>
  244. <a href="#" class="social-icon si-borderless si-gplus">
  245. <i class="icon-gplus"></i>
  246. <i class="icon-gplus"></i>
  247. </a>
  248. <a href="#" class="social-icon si-borderless si-rss">
  249. <i class="icon-rss"></i>
  250. <i class="icon-rss"></i>
  251. </a>
  252. <a href="#" class="social-icon si-borderless si-email3">
  253. <i class="icon-email3"></i>
  254. <i class="icon-email3"></i>
  255. </a>
  256. </div>
  257. </div><!-- Product Single - Share End -->
  258.  
  259. </div>
  260.  
  261. <div class="col_one_fifth col_last">
  262.  
  263. <div class="feature-box fbox-plain fbox-dark fbox-small">
  264. <div class="fbox-icon">
  265. <i class="icon-thumbs-up2"></i>
  266. </div>
  267. <h3>100% Original</h3>
  268. <p class="notopmargin">We guarantee you the sale of Original Brands.</p>
  269. </div>
  270.  
  271. <div class="feature-box fbox-plain fbox-dark fbox-small">
  272. <div class="fbox-icon">
  273. <i class="icon-credit-cards"></i>
  274. </div>
  275. <h3>Payment Options</h3>
  276. <p class="notopmargin">We accept Visa, MasterCard and American Express.</p>
  277. </div>
  278.  
  279. <div class="feature-box fbox-plain fbox-dark fbox-small">
  280. <div class="fbox-icon">
  281. <i class="icon-truck2"></i>
  282. </div>
  283. <h3>Free Shipping</h3>
  284. <p class="notopmargin">Free Delivery to 100+ Locations on orders above R100.00.</p>
  285. </div>
  286.  
  287. <div class="feature-box fbox-plain fbox-dark fbox-small">
  288. <div class="fbox-icon">
  289. <i class="icon-undo"></i>
  290. </div>
  291. <h3>30-Days Returns</h3>
  292. <p class="notopmargin">Return or exchange items purchased within 30 days.</p>
  293. </div>
  294.  
  295. </div>
  296.  
  297. <div class="col_full nobottommargin">
  298.  
  299. <div class="tabs clearfix nobottommargin" id="tab-1">
  300.  
  301. <ul class="tab-nav clearfix">
  302. <li><a href="#tabs-1"><i class="icon-info-sign"></i><span class="hidden-xs"> Additional Information</span></a></li>
  303. <li><a href="#tabs-2"><i class="icon-star3"></i><span class="hidden-xs"> Reviews (@Model.Product.Reviews.Count)</span></a></li>
  304. </ul>
  305.  
  306. <div class="tab-container">
  307.  
  308. <div class="tab-content clearfix" id="tabs-1">
  309.  
  310. <table class="table table-striped table-bordered">
  311. <tbody>
  312. @foreach (var item in Model.Product.AdditionalInfo)
  313. {
  314. <tr>
  315. <td>@item.Name</td>
  316. <td>@item.Description</td>
  317. </tr>
  318. }
  319. </tbody>
  320. </table>
  321.  
  322. </div>
  323. <div class="tab-content clearfix" id="tabs-2">
  324.  
  325. <div id="reviews" class="clearfix">
  326.  
  327. @if (Model.Product.Reviews.Any())
  328. {
  329. <ol class="commentlist clearfix">
  330.  
  331. @foreach (var item in Model.Product.Reviews)
  332. {
  333. {
  334. var thisuser = UserExtentions.ApplicationUser(item.ApplicationUserId);
  335.  
  336. <li class="comment even thread-even depth-1" id="li-comment-1">
  337. <div id="comment-1" class="comment-wrap clearfix">
  338.  
  339. <div class="comment-meta">
  340. <div class="comment-author vcard">
  341. <span class="comment-avatar clearfix">
  342. @if (thisuser.Files.Any(x => x.FileType == FileType.Avatar))
  343. {
  344. <img alt="@thisuser.PersonalDetails.DisplayName" src="~/img/uploads/users/listImages/@thisuser.Files.First(x => x.FileType == FileType.Avatar).FileName" height='60' width='60' />
  345. }
  346. else
  347. {
  348. <img alt="No Image" src="~/img/uploads/users/listImages/noImage.png" height='60' width='60' />
  349. }
  350.  
  351. </span>
  352. </div>
  353. </div>
  354.  
  355. <div class="comment-content clearfix">
  356. <div class="comment-author">@thisuser.PersonalDetails.DisplayName<span><a href="#" title="Permalink to this comment">@item.DateTime</a></span></div>
  357. <p>@item.Review</p>
  358. <div class="review-comment-ratings">
  359. <i class="icon-star3"></i>
  360. <i class="icon-star3"></i>
  361. <i class="icon-star3"></i>
  362. <i class="icon-star3"></i>
  363. <i class="icon-star-half-full"></i>
  364. </div>
  365. </div>
  366.  
  367. <div class="clear"></div>
  368.  
  369. </div>
  370. </li>
  371. }
  372. }
  373.  
  374. </ol>
  375. }
  376. else
  377. {
  378. <h3>No Review Available for this Product</h3>
  379. }
  380.  
  381. @if (Request.IsAuthenticated)
  382. {
  383. <!-- Modal Reviews
  384. ============================================= -->
  385. <a href="#" data-toggle="modal" data-target="#reviewFormModal" class="button button-3d nomargin fright">Add a Review</a>
  386.  
  387. <div class="modal fade" id="reviewFormModal" tabindex="-1" role="dialog" aria-labelledby="reviewFormModalLabel" aria-hidden="true">
  388. <div class="modal-dialog">
  389. <div class="modal-content">
  390. <div class="modal-header">
  391. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  392. <h4 class="modal-title" id="reviewFormModalLabel">Submit a Review</h4>
  393. </div>
  394. <div class="modal-body">
  395. @using (Html.BeginForm("AddReview", "Products", FormMethod.Post))
  396. {
  397. @Html.HiddenFor(model => model.Product.Identity)
  398. <div class="clear"></div>
  399.  
  400. <div class="col_full col_last">
  401. <label for="rating">Rating</label>
  402. <select id="rating" name="rating" class="form-control">
  403. <option value="">-- Select One --</option>
  404. <option value="1">1</option>
  405. <option value="2">2</option>
  406. <option value="3">3</option>
  407. <option value="4">4</option>
  408. <option value="5">5</option>
  409. </select>
  410. </div>
  411.  
  412. <div class="clear"></div>
  413.  
  414. <div class="col_full">
  415. <label for="review">Comment <small>*</small></label>
  416. <textarea class="required form-control" id="review" name="review" rows="6" cols="30"></textarea>
  417. </div>
  418.  
  419. <div class="col_full nobottommargin">
  420. <button class="button button-3d nomargin" type="submit" id="template-reviewform-submit" name="template-reviewform-submit" value="submit">Submit Review</button>
  421. </div>
  422.  
  423. }
  424. </div>
  425. <div class="modal-footer">
  426. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  427. </div>
  428. </div><!-- /.modal-content -->
  429. </div><!-- /.modal-dialog -->
  430. </div><!-- /.modal -->
  431. <!-- Modal Reviews End -->
  432. }
  433.  
  434. </div>
  435.  
  436. </div>
  437.  
  438. </div>
  439.  
  440. </div>
  441.  
  442. </div>
  443.  
  444. </div>
  445.  
  446. </div>
  447.  
  448. <div class="clear"></div>
  449. <div class="line"></div>
  450.  
  451. <div class="col_full nobottommargin">
  452.  
  453. <h4>Related Products</h4>
  454.  
  455. <div id="oc-product" class="owl-carousel product-carousel carousel-widget" data-margin="30" data-pagi="false" data-autoplay="5000" data-items-xxs="1" data-items-sm="2" data-items-md="3" data-items-lg="4">
  456.  
  457. @foreach (Product item in ViewBag.RelatedProducts)
  458. {
  459. <div class="oc-item">
  460. <div class="product iproduct clearfix">
  461. @Html.Partial("_ProductSquareDisplayPartialView", item)
  462. </div>
  463. </div>
  464. }
  465.  
  466. </div>
  467.  
  468. </div>
  469.  
  470. </div>
  471.  
  472. </div>
  473.  
  474. @section scripts
  475. {
  476. <script>
  477. $(':radio[name=SelectedAnswer]').change(function () {
  478. // read the value of the selected radio
  479. var value = @Model.SelectedAnswer.Price;
  480. $('#pricePro').text(value);
  481. alert($(this).val());
  482. });
  483. </script>
  484. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement