public AdminAccountsController()
        {
            Model1         = new XPayAccount().GetType().Name;
            Model1FileName = AppDataFolder + "InnerAPI\\" + Model1 + ".json";
            Model2         = new XPayRole().GetType().Name;
            Model2FileName = AppDataFolder + "InnerAPI\\" + Model2 + ".json";
            FileChecker <XPayAccount> .AutoCreateIfNotExists(Model1FileName);

            FileChecker <XPayRole> .AutoCreateIfNotExists(Model2FileName);
        }
 public async Task <XPayRole> Save(XPayRole newData)
 {
     return(await Task.Run(async() => {
         try {
             roles = await Reader <XPayRole> .JsonReaderListAsync(Model1FileName);
             roles.Add(newData);
             _ = await Writer <XPayRole> .JsonWriterListAsync(roles, Model1FileName);
             return newData;
         } catch {
             return null;
         }
     }));
 }
 public async Task <XPayRole> Edit(XPayRole updatedData)
 {
     return(await Task.Run(async() => {
         try {
             roles = await Reader <XPayRole> .JsonReaderListAsync(Model1FileName);
             if (roles.Count == 0)
             {
                 throw new Exception("No data to be update");
             }
             var old = roles.Where(a => a.Id.Equals(updatedData.Id)).FirstOrDefault();
             if (old == null)
             {
                 throw new Exception("No data to be update");
             }
             roles = roles.Where(a => !a.Id.Equals(updatedData.Id)).ToList();
             updatedData.DateUpdated = DateTime.Now;
             roles.Add(updatedData);
             _ = await Writer <XPayRole> .JsonWriterListAsync(roles, Model1FileName);
             return old;
         } catch (Exception ex) {
             throw ex;
         }
     }));
 }