Beispiel #1
0
 // Konstruktor tworzący obiekt zawierający dane niezbędne do zapisu w bazie.
 // Tworzony jest plik XML zawierający dane wprowadzone podczas tworzenia karty.
 public CharacterChartDbModel(
     CharacterChart chart,
     ApplicationUser user = null
     ) : this(user)
 {
     ChartID = chart.ChartID;
     Name    = chart.Name;
     GenerateXml(chart);
 }
Beispiel #2
0
 public CharacterChartViewModel(
     CharacterChart Chart
     )
 {
     ChartID          = Chart.ChartID;
     UserID           = Chart.UserID;
     Name             = Chart.Name;
     ChartDescription = Chart.ChartDescription;
     DataNames        = Chart.DataNames;
     StatNames        = Chart.StatNames;
     AttributeNames   = Chart.AttributeNames;
     SkillNames       = Chart.SkillNames;
     Equipment        = Chart.Equipment;
     Description      = Chart.Description;
 }
Beispiel #3
0
        // Metoda tworząca plik XML z danymi. Nazwa pliku jest równa wartości pola ChartID
        // przekazanego w obiekcie typu CharacterChart. Jeżeli pole to będzie NULL, to
        // funkcja nie stworzy pliku.
        //
        // UWAGA! Nadpisuje istniejące pliki!
        void GenerateXml(CharacterChart chart, string Source = null)
        {
            if (chart.ChartID == null) return;

            if (Source == null)
            {
                CharacterChartSrc = DefaultConstants.Application.DefaultXmlLocalization(
                                        ChartID.ToString(),
                                        DefaultConstants.Application.DefaultChartXmlFolder
                                        );
            }
            else
            {
                CharacterChartSrc = DefaultConstants.Application.DefaultXmlLocalization(
                                        ChartID.ToString(),
                                        Source.ToString()
                                        );
            }

            // Tworzenie nowego pliku XML. Dalszy opis w XmlModels.Chart(CharacterChart chart)
            XmlModels.Chart chartXml = new XmlModels.Chart(chart);
            return;
        }
Beispiel #4
0
        public async Task<ActionResult> Create(CharacterChartViewModel Model)
        {
            if (ModelState.IsValid)
            {
                var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
                CharacterChart Chart = new CharacterChart(Request.Form);
                CharacterChartDbModel ChartModel_DB = new CharacterChartDbModel(Chart,user);
                ChartModel_DB = db.CharacterCharts.Add(ChartModel_DB);
                await db.SaveChangesAsync();

                return RedirectToAction("Success", new { ChartID = ChartModel_DB.ChartID });
            }
            return View(Model);
        }
Beispiel #5
0
        // Konstruktor bindujący dane z POSTa na model. CharacterID oraz Name są
        // pobierane z pól formularza
        //
        // todo: Przy większym ruchu na stronie może nastąpić powtórzenie ID w czasie
        //       tworzenia karty, najlepiej było by tworzyć nowy ID teraz.
        /// <summary>Tworzy gotowy obiekt do zapisu w bazie</summary>
        /// <param name="PostData">Tablica klucz-wartość z danymi z żądania</param>
        public Character(
            NameValueCollection PostData,
            HttpFileCollectionBase Files = null,
            ApplicationUser User = null
            ) : this(User)
        {
            // Pobieranie danych karty, której szablon został wykorzystany
            CharacterChart chart = new CharacterChart(PostData.Get("ChartID"));

            if (chart != null)
            {
                // Parsowanie danych z pól mających zawierać liczby. W przypadku, gdy parsowanie
                // się nie powiedzie, do pola przypisane zostaje 0.
                int[] Skills     = DefaultMethods.ToIntArray(PostData.GetValues("Skill"));
                int[] Attributes = DefaultMethods.ToIntArray(PostData.GetValues("Attribute"));
                int[] Stats      = DefaultMethods.ToIntArray(PostData.GetValues("Stat"));
                
                // Przesyłanie awatarów postaci
                string AvatarSource = this.AvatarImg;
                if (Files["AvatarImg"] != null)
                {
                    AvatarSource = DefaultConstants.Application.DefaultImgLocalization(
                                    PostData.Get("CharacterID"),
                                    DefaultConstants.Application.DefaultCharacterAvatarFolder,
                                    Files["AvatarImg"].ContentType);
                    Files["AvatarImg"].SaveAs(HttpContext.Current.Server.MapPath(AvatarSource));
                }

                // Przypisywanie do modelu danych z POSTa
                CharacterID     = PostData.Get("CharacterID");
                ChartID         = PostData.Get("ChartID");
                Name            = PostData.Get("Name");
                AvatarImg       = AvatarSource;
                Data            = DefaultMethods.ToDictionary(chart.DataNames, PostData.GetValues("Data"));
                this.Stats      = DefaultMethods.ToDictionary(chart.StatNames, Stats);
                this.Attributes = DefaultMethods.ToDictionary(chart.AttributeNames, Attributes);
                this.Skills     = DefaultMethods.ToDictionary(chart.SkillNames, Skills);
                Equipment       = PostData.GetValues("Equipment");
                Description     = PostData.Get("Description");
            }
        }
Beispiel #6
0
 // Konstruktor przeznaczony do wykorzystania w widoku dla kreatora postaci. Przygotowuje wszystkie
 // wymagane pola pod konkretną kartę.
 /// <summary>Tworzy nowy model gracza w oparciu o szablon karty</summary>
 /// <param name="chart">Szablon karty</param>
 /// <param name="user">Dane użytkownika</param>
 public Character(
     CharacterChart chart,
     ApplicationUser user = null
     ) : this(user)
 {
     CharacterID   = new Key(DefaultConstants.GeneratedCharacterKeyLength).Value;
     Data          = DefaultMethods.ToDictionary<string>(chart.DataNames);
     Stats         = DefaultMethods.ToDictionary<int>(chart.StatNames);
     Attributes    = DefaultMethods.ToDictionary<int>(chart.AttributeNames);
     Skills        = DefaultMethods.ToDictionary<int>(chart.SkillNames);
     IsDescription = chart.Description;
     IsEquipment   = chart.Equipment;
     ChartID       = chart.ChartID;
 }