Exemplo n.º 1
0
        public async Task <FavouriteSupplier> CreateTenderFavouriteAsync(FavouriteSupplier favouriteSupplier)
        {
            await _context.FavouriteSuppliers.AddAsync(favouriteSupplier);

            await _context.SaveChangesAsync();

            return(favouriteSupplier);
        }
Exemplo n.º 2
0
        public async Task <FavouriteSupplier> UpdateTenderFavouriteSupplierAsync(FavouriteSupplier favouriteSupplier)
        {
            try
            {
                _context.FavouriteSuppliers.Update(favouriteSupplier);
                await _context.SaveChangesAsync();

                return(favouriteSupplier);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemplo n.º 3
0
        public async Task <bool> AddSupplierToFavouriteList(SupplierSearchCretriaModel cretria)
        {
            Check.ArgumentNotNullOrEmpty(nameof(cretria.FavouriteSupplierListId), cretria.FavouriteSupplierListId.ToString());
            Check.ArgumentNotNullOrEmpty(nameof(cretria.CommericalRegisterNo), cretria.CommericalRegisterNo.ToString());

            var supplier = await _supplierQueries.FindSupplierByCRNumber(cretria.CommericalRegisterNo);

            var favouriteSuppliers = (await _supplierQueries.GetFavouriteSuppliersByListId(new SupplierSearchCretriaModel()
            {
                OnlyActive = false,
                FavouriteSupplierListId = cretria.FavouriteSupplierListId,
                PageSize = int.MaxValue,
                AgencyCode = cretria.AgencyCode
            })).Items;

            if (favouriteSuppliers.Any(s => s.CommericalRegisterNo == cretria.CommericalRegisterNo))
            {
                var favouriteSupplier = await _supplierQueries.FindFavouriteSupplierByListId(new SupplierSearchCretriaModel
                {
                    FavouriteSupplierListId = cretria.FavouriteSupplierListId,
                    CommericalRegisterNo    = cretria.CommericalRegisterNo
                });

                if (favouriteSuppliers.Any(s => s.CommericalRegisterName == cretria.CommericalRegisterName && s.CommericalRegisterNo == cretria.CommericalRegisterNo) && favouriteSupplier.IsActive == true)
                {
                    throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.FavouriteListHasSupplierExist);
                }

                if (favouriteSupplier.FavouriteSupplierList.AgencyCode != cretria.AgencyCode)
                {
                    throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.FavouriteListNotForAgency);
                }

                if (favouriteSupplier.FavouriteSupplierList.BranchId != cretria.BranchId)
                {
                    throw new BusinessRuleException(Resources.TenderResources.ErrorMessages.FavouriteListNotForBranch);
                }

                supplier.Update(cretria.CommericalRegisterNo, cretria.CommericalRegisterName);
                await _supplierCommands.UpdateSupplierAsync(supplier);

                favouriteSupplier.SetActive();
                await _supplierCommands.UpdateTenderFavouriteSupplierAsync(favouriteSupplier);

                return(true);
            }
            if (supplier != null)
            {
                var result = new FavouriteSupplier(supplier.SelectedCr, cretria.FavouriteSupplierListId.Value);
                await _supplierCommands.CreateTenderFavouriteAsync(result);

                return(true);
            }
            else
            {
                await _supplierCommands.CreateSupplierAsync(new Supplier(cretria.CommericalRegisterNo, cretria.CommericalRegisterName, await _notificationAppService.GetDefaultSettingByCr()));

                var result = new FavouriteSupplier(cretria.CommericalRegisterNo, cretria.FavouriteSupplierListId.Value);
                await _supplierCommands.CreateTenderFavouriteAsync(result);

                return(true);
            }
        }