2017-09-08 14 views
0

私はすでにユーザーがデータベースに登録されているワーキングレジスタユーザーメソッドを作成しました。私は新しいパッケージを作成する、新しいパッケージメソッドを作成しました。どちらもうまく動作しますが、ユーザーが作成されたアカウントの種類がnullに設定されている場合、単にユーザー "accountType"を "PackageName"に設定する必要があります。Postmanの "Put"メソッドを使用して1つのモデルから別のモデルに値を設定できません

パッケージモデル:

public class Packages 
    { 
     public int Id { get; set; } 
     public string PackageName { get; set; } 
     public int OrderLimit { get; set; } 
     public decimal Cost { get; set; } 
     public string ResetIntervalType { get; set; } 
     public int ResetInterval { get; set; } 
} 

ユーザーモデル:ここで

public class AppUser : IdentityUser 
    { 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public string AccountType { get; set; } 
     public int? PeriodOrderQty { get; set; } 
     public int? TotalOrderQty { get; set; } 
     public Guid? APIKey { get; set; } 
     //added packages foreign key, connection established 
     public Packages Package { get; set; } 
     public Cities City { get; set; } 
     public QualificationLevels Qualifications { get; set; } 

    } 

は、ブレークが主な問題は、マッパーがの方に設定されている各コンポーネントを指した後、私が実装しようとしてるプット方法ですメソッドの開始しかし、私は他の何を試して、私はちょうどこれらの種類のメソッドを使用し始めたか分からない。参考のため

[HttpPut("api/auth/assignpackage/{id}")] 
      public async Task<IActionResult> AssignPackage(int id ,[FromBody]Packages packageAssignValue) 
      { 
       try 
       { 
        var assignPackage = packageAssignValue; 
        var assignUser = Mapper.Map<Packages, AppUser>(packageAssignValue); 
        assignUser.AccountType = packageToEdit.PackageName; 

        var packageToEdit = await _context.Packages 
         .AsNoTracking() 
         .SingleOrDefaultAsync(m => m.Id == id); 

        assignUser.AccountType = assignPackage.PackageName; 

        if (packageToEdit == null) 
        { 
         return NotFound("Could not update Package as it was not Found"); 
        } 
        else 
        { 
         _context.Update(assignUser); 
         await _context.SaveChangesAsync(); 
         return Ok(assignUser); 

        } 
       } 
       catch (DbUpdateException) 
       { 
        //Log the error (uncomment ex variable name and write a log.) 
        ModelState.AddModelError("", "Unable to save changes. " + 
         "Try again, and if the problem persists, " + 
         "see your system administrator."); 
        return NotFound("Package not found"); 
       } 
      } 

ここに私の郵便配達入力です:

{ 
     "packageName": "Bronze" 
} 
+0

'Mapper.Map'はパッケージをAppUserに変換しますか? AppUserのPackageプロパティをPackagesにどのように設定しますか? –

+0

これは単にAutoMapperの例外エラーをスローすることはありません。私はこれを間違った方法で実装しようとしている可能性があると思います。しかし、私は、マッパーが意図しているAppUserプロパティにPackageプロパティを設定しないことを知っています。 [assignUser.AccountType = packageToEdit.PackageName] – Bmanzr

+0

'AutoMapper例外エラーが発生しただけではありません。 'あなたの投稿にその例外の詳細を更新してください。 – mjwills

答えて

0

は、しかし、新しいエラーが更新の方法についての詳細を示し、別の質問を登場している、自動マッパーの問題を解くことによって問題を修正しました。

関連する問題