ASP OE last minute help

Topics: Magyar (Hungarian), Troubleshooting
May 12, 2013 at 8:00 PM
Sziasztok!

Beadandó házival volna egy olyap problémánk, hogy működik a témánk, megvannak a partjaink is, viszont az Istennek nem tudjuk rávenni a solution-t, hogy ezeket meg is jelenítse.
Dashboard-ból létre tudjuk hozni őket, viszont a létrehozási felületet az egyik oldalon, valamint a kilistázást a másikon nem tudjuk megoldani.
Bármi ötlet?

R
Developer
May 12, 2013 at 8:11 PM
Ez még egy kicsit túl bő. Placement.info biztos jó, ki van töltve a partotokhoz? Exception nincs (Debug alatt Exceptions, CLR exceptionnél a Thrown is legyen bepipálva amikor debuggolsz, így az összes exception látható lesz)?
May 12, 2013 at 8:24 PM
Debuggerrel futtatva bezony vannak exception-ök, lényegében több helyről a Views mappát hiányolja.
Ezen túl ha jól értelek, a placement.info-ban kéne elhelyeznünk a megfelelő tartalmakat, és működik a varázslat?
Developer
May 12, 2013 at 8:34 PM
Azok az exceptionök ugyan rondák, de nem befolyásolják az oldal működését. A probléma az, hogy ha debugger nélkül elindítva, majd utána hozzácsatolva is előjönnek exceptionök (mert a Views mappásak csak indításkor vannak).
Igen, ha a Placement.info-ba belerakod az editor és display shape-hez tartozó bejegyzéseket az órán tanult és a letölthető csomagban látható módon, akkor meg is fognak jelenni a shape-ek. Placement.info nélkül biztos nem.
May 12, 2013 at 9:44 PM
A helyzet a következő: megnéztük újfent az órai anyagot, átimplementáltuk aszerint, és az igazság odaát van.. működik minden, de csak külön-külön.
A placement.info rendben van, nem is akad ki mint a bolgár szatyor, csak nem jelenít meg.
Developer
May 12, 2013 at 9:51 PM
Akkor vegyük át még egyszer:
  • Van driveretek
  • Abban van Display és Editor
  • Ezek visszaadnak ContentShape-eket
  • Az ezekhez tartozó Placement.info megvan
  • Meg a template-ek is
  • Nincs semmilyen exception elindítás után
  • De nem jelenik meg a partnak se az editora, se a display-e?
Ha igen, akkor másold be ide a driver és a Placement.info kódját (kódként: Ctrl+K és a nyitó három vonás után írd be, hogy C#, a Placement.info-nál meg XML).

Pluszpont a szatyros poénért :-D.
Developer
May 12, 2013 at 9:53 PM
May 12, 2013 at 10:18 PM
``` C#
using NIK.Pizza.Models;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.Handlers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace NIK.Pizza.Drivers
{
public class PizzaPartDriver : ContentPartDriver<PizzaPart>
{
    protected override string Prefix
    {
        get
        {
            return "NIK.Pizza";
        }
    }

    protected override DriverResult Display(PizzaPart part, string displayType, dynamic shapeHelper)
    {
        return ContentShape("Parts_Pizza",
            () => shapeHelper.Parts_Pizza(DisplayType: displayType));
    }

    // GET
    protected override DriverResult Editor(PizzaPart part, dynamic shapeHelper)
    {
        return ContentShape("Parts_Pizza_Edit",
            () => shapeHelper.EditorTemplate(
                        TemplateName: "Parts.Pizza",
                        Model: part,
                        Prefix: Prefix));
    }

    // POST
    protected override DriverResult Editor(PizzaPart part, IUpdateModel updater, dynamic shapeHelper)
    {
        updater.TryUpdateModel(part, Prefix, null, null);
        return Editor(part, shapeHelper);
    }

    protected override void Importing(PizzaPart part, ImportContentContext context)
    {
        var partName = part.PartDefinition.Name;

        context.ImportAttribute(partName, "Name", value => part.Name = value);
    }

    protected override void Exporting(PizzaPart part, ExportContentContext context)
    {
        // <PersonPart Name="név">
        var element = context.Element(part.PartDefinition.Name);

        element.SetAttributeValue("Name", part.Name);
    }
}
}
<Placement>
  <Place Parts_Pizza="Content:5"
         Parts_Pizza_Edit="Content:5" />
</Placement>
```
Developer
May 12, 2013 at 10:33 PM
Ez jónak tűnik.

Két breakpontot próbálj ki:
  1. Display()-ben a return sora lefut, ha megjelenítesz egy itemet?
  2. Display()-ben a () => shapeHelper.Parts_Pizza delegate (tényleg csak a delegate, kattints bele és F9) lefut?