예제 #1
0
        public async Task <IActionResult> OnPostUpdateAsync(int id)
        {
            var devoteeToUpdate = await _context.DevoteeLanguageProficiencies.FirstOrDefaultAsync(x => x.DevoteeId == id);

            if (devoteeToUpdate == null)
            {
                return(NotFound());
            }
            //
            var           languages = Enum.GetNames(typeof(Language));
            var           count     = languages.Length;
            List <string> speak     = new List <string>();
            List <string> read      = new List <string>();
            List <string> write     = new List <string>();
            List <string> translate = new List <string>();

            for (var i = 0; i < count; i++)
            {
                var x = i.ToString();
                if (Speaks[i])
                {
                    speak.Add(x);
                }
                if (Reads[i])
                {
                    read.Add(x);
                }
                if (Writes[i])
                {
                    write.Add(x);
                }
                if (Translatables[i])
                {
                    translate.Add(x);
                }
            }
            DevoteeLanguageProficiency devoteeLanguageProficiency = new DevoteeLanguageProficiency();

            DevoteeLanguageProficiency           = devoteeLanguageProficiency;
            DevoteeLanguageProficiency.DevoteeId = id;
            DevoteeLanguageProficiency.Speak     = string.Join(',', speak);
            DevoteeLanguageProficiency.Read      = string.Join(',', read);
            DevoteeLanguageProficiency.Write     = string.Join(',', write);
            DevoteeLanguageProficiency.TranslatableFromEnglish = string.Join(',', translate);
            DevoteeLanguageProficiency.MotherTongue            = MotherTongue;
            //
            if (await TryUpdateModelAsync <DevoteeLanguageProficiency>(
                    devoteeToUpdate,
                    "devotee", s => s.Speak, s => s.Read, s => s.Write, s => s.MotherTongue,
                    s => s.TranslatableFromEnglish))
            {
                await _context.SaveChangesAsync();
            }

            return(await OnGetAsync(DevoteeLanguageProficiency.DevoteeId));
        }
예제 #2
0
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see https://aka.ms/RazorPagesCRUD.
        public async Task <IActionResult> OnPostAsync(int id)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            var           languages = Enum.GetNames(typeof(Language));
            var           count     = languages.Length;
            List <string> speak     = new List <string>();
            List <string> read      = new List <string>();
            List <string> write     = new List <string>();
            List <string> translate = new List <string>();

            for (var i = 0; i < count; i++)
            {
                var x = i.ToString();
                if (Speaks[i])
                {
                    speak.Add(x);
                }
                if (Reads[i])
                {
                    read.Add(x);
                }
                if (Writes[i])
                {
                    write.Add(x);
                }
                if (Translatables[i])
                {
                    translate.Add(x);
                }
            }
            DevoteeLanguageProficiency devoteeLanguageProficiency = new DevoteeLanguageProficiency();

            DevoteeLanguageProficiency           = devoteeLanguageProficiency;
            DevoteeLanguageProficiency.DevoteeId = id;
            DevoteeLanguageProficiency.Speak     = string.Join(',', speak);
            DevoteeLanguageProficiency.Read      = string.Join(',', read);
            DevoteeLanguageProficiency.Write     = string.Join(',', write);
            DevoteeLanguageProficiency.TranslatableFromEnglish = string.Join(',', translate);
            DevoteeLanguageProficiency.MotherTongue            = MotherTongue;

            _context.DevoteeLanguageProficiencies.Add(DevoteeLanguageProficiency);
            await _context.SaveChangesAsync();

            return(await OnGetAsync(DevoteeLanguageProficiency.DevoteeId));
        }
예제 #3
0
        public void SetAllLists(DevoteeLanguageProficiency dlp)
        {
            var languages = Enum.GetNames(typeof(Language));
            var count     = languages.Length;

            Speaks        = new List <bool>(new bool[count]);
            Reads         = new List <bool>(new bool[count]);
            Writes        = new List <bool>(new bool[count]);
            Translatables = new List <bool>(new bool[count]);

            List <int> readList      = dlp.Read.Length > 1 ? dlp.Read.Split(',').Select(Int32.Parse).ToList() : (dlp.Read == string.Empty ? null : new List <int> {
                Int32.Parse(dlp.Read)
            });
            List <int> speakList     = dlp.Speak.Length > 1 ? dlp.Speak.Split(',').Select(Int32.Parse).ToList() : (dlp.Speak == string.Empty ? null : new List <int> {
                Int32.Parse(dlp.Speak)
            });
            List <int> writeList     = dlp.Write.Length > 1 ? dlp.Write.Split(',').Select(Int32.Parse).ToList() : (dlp.Write == string.Empty ? null : new List <int> {
                Int32.Parse(dlp.Write)
            });
            List <int> translateList = dlp.TranslatableFromEnglish.Length > 1 ? dlp.TranslatableFromEnglish.Split(',').Select(Int32.Parse).ToList() : (dlp.TranslatableFromEnglish == string.Empty ? null : new List <int> {
                Int32.Parse(dlp.TranslatableFromEnglish)
            });

            if (speakList != null)
            {
                SetFlags(Speaks, speakList);
            }
            if (readList != null)
            {
                SetFlags(Reads, readList);
            }
            if (writeList != null)
            {
                SetFlags(Writes, writeList);
            }
            if (translateList != null)
            {
                SetFlags(Translatables, translateList);
            }

            MotherTongue = dlp.MotherTongue;
        }