public async Task <ActionResult <int> > RegisterFirm( [FromBody] FirmAddressDto model) { var firmaddress = new FirmAddress { AptAddress = (string)model.AptAddress, StreetAddress = (string)model.StreetAddress, City = (string)model.City, State = (string)model.State, ZipCode = (string)model.Zip, }; var addressId = await _dataAccess.CreateFirmAddressAsync(firmaddress); var firm = new Firm { Name = (string)model.Name, Type = (string)model.Type, AddressId = addressId }; var firmId = await _dataAccess.CreateFirmAsync(firm); var user = await _dataAccess.GetUserByUserNameAsync(model.UserName); var firmUser = new FirmUser { FirmId = (int)firmId, UserId = (int)user.Id, }; await _dataAccess.LinkFirmToUserAsync(firmUser); return(firmId); }
private static async Task <int> DoestheAddressExists(this IdapadDataAccess dataAccess, FirmAddress firmaddress) { int firmAddressId = await dataAccess.QueryFirstOrDefaultAsync <int>( "select Id from FirmAddress where " + "StreetAddress = @StreetAddress " + "AND isnull(AptAddress, 'AptAddress') = ISNULL(@AptAddress, isnull(AptAddress, 'AptAddress')) " + "AND City = @City AND State =@State AND ZipCode= @ZipCode", firmaddress); return(firmAddressId); }
public static async Task <int> CreateFirmAddressAsync(this IdapadDataAccess dataAccess, FirmAddress firmaddress) { var firmAddressId = await DoestheAddressExists(dataAccess, firmaddress); if (firmAddressId < 1) { return(await dataAccess.ExecuteScalarAsync <int>( "Insert FirmAddress (TypeId, StreetAddress, AptAddress, City, State, ZipCode) output inserted.Id values" + "(1, @StreetAddress, @AptAddress, @City, @State, @ZipCode)", firmaddress)); } return(firmAddressId); }
public IActionResult SaveFirmDetails([FromBody] FirmAddress firmAddress) { if (firmAddress == null) { return(BadRequest()); } try { _registrationService.SaveFirmDetails(firmAddress); } catch (Exception ex) { return(Problem(detail: ex.StackTrace, title: ex.Message, statusCode: 500)); } return(Ok()); }
public void SaveFirmDetails(FirmAddress firmAddress) { try { using (SqlCommand sqlCommand = new SqlCommand()) { sqlCommand.Connection = _connection; sqlCommand.CommandType = System.Data.CommandType.StoredProcedure; sqlCommand.CommandText = "spInsertIntoFirmDetails"; sqlCommand.Parameters.AddWithValue("Address1", firmAddress.Address1); sqlCommand.Parameters.AddWithValue("Address2", firmAddress.Address2); sqlCommand.Parameters.AddWithValue("City", firmAddress.City); sqlCommand.Parameters.AddWithValue("State", firmAddress.State); sqlCommand.Parameters.AddWithValue("Zip", firmAddress.Zip); sqlCommand.Parameters.AddWithValue("FirmId", firmAddress.FirmId); if (_connection.State == System.Data.ConnectionState.Closed) { _connection.Open(); } int rowsAffected = sqlCommand.ExecuteNonQuery(); //Sending notification after saving the firm additional details. NotificationDetails notificationDetails = new NotificationDetails() { NotificationType = NotificationType.FirmAdditionalDetailsSave.ToString(), Body = "Your firm details with firmID " + firmAddress.FirmId + " are saved . Below are the details provided ." + Environment.NewLine + Environment.NewLine + "Address1 : " + firmAddress.Address1 + Environment.NewLine + "Address2 : " + firmAddress.Address2 + Environment.NewLine + "City : " + firmAddress.City + Environment.NewLine + "State : " + firmAddress.State + Environment.NewLine + "Zip : " + firmAddress.Zip, Subject = "FinancingPMS Firm additional details update." }; _notificationService.SendNotification(notificationDetails); } } finally { _connection.Close(); } }
public static async Task <List <FirmOrder> > GetOrderAsync(this IdapadDataAccess dataAccess, string email) { string SQL = "SELECT o.Id, o.[BuyerEmail], o.[OrderDate], o.[DeliveryMethodId], o.[ShipAddressId], " + "o.[Subtotal], o.[Status], o.[PaymentInterestId], " + "i.[FirmProductId], i.[FirmProductId], p.Id ProductId, p.[Name] ProductName, " + "p.[Description] ProductDescription, p.PictureUrl ProductPictureUrl, " + "i.[Price], i.[Quantity], i.[SizeId], i.[OrderId], i.Id OrderItemId, " + "d.ShortName DelShortName, d.[DeliveryTime], d.[Description] DelDescription, d.[Price] DelPrice, " + "a.[StreetAddress], a.[AptAddress], a.[City], a.[State], a.[ZipCode] " + "FROM [dbo].[Orders] o " + "INNER JOIN [dbo].[OrderItems] i ON o.Id = i.OrderId " + "INNER JOIN [dbo].[FirmProducts] fp ON i.FirmProductId = fp.Id " + "INNER JOIN [dbo].[Products] p ON fp.ProductId = p.Id " + "INNER JOIN [dbo].[Firm] f ON i.FirmProductId = f.Id " + "INNER JOIN [dbo].[DeliveryMethod] d on o.[DeliveryMethodId] = d.Id " + "INNER JOIN FirmAddress a on a.Id = o.Id " + "WHERE o.BuyerEmail = '" + email + "'"; var ordersflat = await dataAccess.QueryAsync <OrderFlat>(SQL); List <FirmOrder> orders = new List <FirmOrder>(); // HashSet <int> orderIds = new HashSet <int>(); foreach (var item in ordersflat) { if (!orderIds.Contains(item.Id)) { var order = new FirmOrder(); order.Id = item.Id; order.BuyerEmail = item.BuyerEmail; order.OrderDate = item.OrderDate; order.Subtotal = item.Subtotal; FirmAddress shipaddress = new FirmAddress(); shipaddress.StreetAddress = item.StreetAddress; shipaddress.AptAddress = item.AptAddress; shipaddress.City = item.City; shipaddress.State = item.State; shipaddress.ZipCode = item.ZipCode; order.ShipToAddress = shipaddress; OrderDelivery delivery = new OrderDelivery(); delivery.DeliveryTime = item.DeliveryTime; delivery.ShortName = item.DelShortName; delivery.Description = item.DelDescription; delivery.Price = item.DelPrice; order.DeliveryMethod = delivery; order.OrderItems = new List <FirmOrderItem>(); foreach (var orderitem in ordersflat.Where(oi => oi.OrderId == order.Id)) { FirmOrderItem firmorderItem = new FirmOrderItem(); firmorderItem.OrderId = orderitem.OrderId; firmorderItem.Id = orderitem.OrderItemId; firmorderItem.Price = orderitem.Price; firmorderItem.Quantity = orderitem.Quantity; FirmProductItem firmProductItem = new FirmProductItem(); firmProductItem.ProductId = orderitem.FirmProductId; firmProductItem.ProductName = orderitem.ProductName; firmProductItem.PictureUrl = orderitem.ProductPictureUrl; firmorderItem.ItemOrdered = firmProductItem; order.OrderItems.Add(firmorderItem); } orderIds.Add(order.Id); orders.Add(order); } } return(orders); }