Anas92 Ответов: 1

Как добавить запись из таблицы в то же время обновить другую таблицу .NET core api


I already have a CRUD API and I want to make another API that deals with the creation of the OfficeInvoice table. The behavior I want to see is that when the OfficeInvoice is created, it updates the MedicineStore table to increment the quantity for the MedicineStore you purchased/are purchasing as ypu can see the route for creat make the officeinvoice and same time call the getById to get the record that created same like this is it possible to make it but with update after create?


Что я уже пробовал:

public class Medicine
    {
        public int MedicineId { get; set; }
        public string MedicineName { get; set; }
        public string Company { get; set; }
        public float Price { get; set; }
        public int Quantity { get; set; }
        public string Code { get; set; }
        public int SDrugId { get; set; }
        public ScientificDrug ScientificDrug { get; set; }
        public ICollection<CustomerInvoice> CustomerInvoices { get; set; }
       = new List<CustomerInvoice>();
        public ICollection<MedicineReturn> MedicineReturns { get; set; }
      = new List<MedicineReturn>();
        public int DrugStoreId { get; set; }
        public DrugStores DrugStores { get; set; }
        public ICollection<OfficeInvoice> OfficeInvoices { get; set; }
   = new List<OfficeInvoice>();
        public ICollection<OfficeReturn> OfficeReturns { get; set; }
    = new List<OfficeReturn>();
    }

public class OfficeInvoice
    {
        public int OfficeInvoiceId { get; set; }
        public int Quantity { get; set; }
        public float Discount { get; set; }
        public float TotalPrice { get; set; }
        public Medicine Medicine { get; set; }
        public int MediccineId { get; set; }
        public BuyInvoice BuyInvoice { get; set; }
        public int BuyInvoiceId { get; set; }
    }


public async Task<IActionResult> CreateOfficeInvoice([FromBody] OfficeInvoiceForCreate officeInvoiceForCreate)
     {
         var oinvoice = _mapper.Map<OfficeInvoice>(officeInvoiceForCreate);
         _OInvoiceRepository.CreateOfficeInvoice(oinvoice);
         await _OInvoiceRepository.SaveChanges();
         await _OInvoiceRepository.GetOfficeInvoiceById(oinvoice.OfficeInvoiceId);
         return CreatedAtRoute("GetOfficeInvoice", new { id = oinvoice.OfficeInvoiceId }, oinvoice);
     }

1 Ответов

Рейтинг:
1

Garth J Lancaster

Если не

Цитата:
CreateOfficeInvoice
автоматически генерируется, почему вы не можете добавить код здесь, чтобы делать то, что вы хотите (так как кажется, что у вас уже есть все, что вам нужно здесь) - вам нужно CreateOfficeInvoice, чтобы добиться успеха, но после этого мир-ваша устрица.

Я думаю, что здесь должна быть какая-то ссылочная целостность ... мочь
public ICollection<CustomerInvoice> CustomerInvoices { get; set; } = new List<CustomerInvoice>();
может быть, это будет наблюдаемая коллекция ? таким образом добавление нового CustomerInvoice автоматически запускает обновление таблицы MedicineStore


Anas92

Извините, сэр, не могли бы вы объяснить немного подробнее, что вы имеете в виду?
спасибо