public static Card ToCard(this CardDTO cardDTO) { Card newCard = new Card { ItemNumber = cardDTO.ItemNumber, Title = cardDTO.Title, Description = cardDTO.Description, Start = cardDTO.Start, End = cardDTO.End, Duration = cardDTO?.Duration, CardsListId = cardDTO.CardsListId, Complexity = cardDTO?.Complexity }; if (cardDTO.Discriminator == "PlanCard") { PlanCard planCard = (PlanCard)newCard; planCard.IsDone = ((PlanCardDTO)cardDTO).IsDone; planCard.DoneUserId = ((PlanCardDTO)cardDTO).DoneUserId; return(planCard); } else { HabitCard habitCard = (HabitCard)newCard; habitCard.DoneCounter = ((HabitCardDTO)cardDTO).DoneCounter; habitCard.NotDoneCounter = ((HabitCardDTO)cardDTO).NotDoneCounter; return(habitCard); } }
public async Task <CardDTO> CreateCardAsync(CardDTO cardDTO) { if (cardDTO.Discriminator != "PlanCard" && cardDTO.Discriminator != "HabitCard") { throw new Exception("Card type is not exist!"); } if (cardDTO.Discriminator != "PlanCard") { PlanCard planCard = (PlanCard)cardDTO.ToCard(); db.PlanCards.Add(planCard); await db.SaveChangesAsync(); return(db.PlanCards.FirstOrDefault(pc => pc.Id == planCard.Id).ToCardDTO()); } if (cardDTO.Discriminator != "HabitCard") { HabitCard habitCard = (HabitCard)cardDTO.ToCard(); db.HabitCards.Add(habitCard); await db.SaveChangesAsync(); return(db.HabitCards.FirstOrDefault(pc => pc.Id == habitCard.Id).ToCardDTO()); } return(null); }