kylecharlesbotha / SEN381-Project

Software Engineering 381 Project/Belgium Campus
0 stars 0 forks source link

Finish Methods for Call Centre #78

Open DarrenOosthuizen opened 3 years ago

DarrenOosthuizen commented 3 years ago

Hi There.

Please finish all the methods needed for frmCentre. The start call button will initiate and simulate a call coming in. When it starts the answer call and decline call must change to the ActiveAnswer and ActiveDecline

When the User clicks on the Answer Call. The label time started must be updated to the time the button was pressed. At the same time the lbl Phone number must be updated with a random phone number,(You can make a list of phone numbers and just display a random one) A thread must then also start which will store the call duration and must update constantly

The search when then allow the user to search for the client( we will add business in later , lets just get client working)

In the TbSearch_textchanged method you will need to change it to get the list of all clients from the businesslayer Client.cs(If there is no method for getAllClients create one and that will then get a list from ClientDh.cs. Client.cs will then return a list to the presentation layer.

You will then loop through that list as i do with the for(int = 0; i<testlist.count section. You will replace that with a foreach loop and check if the text entered is equal to the customer name or customer ID Number or the Customer ID. If found it will call CreateEntry(clientname, clientIDNumber) which will give search results

When the click on any of the labels it must autopopulate the fields within the pnlClient Panel. The method for the labels onclick is called lblSearchClicked

Once a client is selected then the user will start with the ticket details For the 3 ComboBox they will be populated with a list. Example as below

AircraftList = objDataHandler.GetAircraftDetails();
                InventoryList = objDataHandler.GetInventory();
                SetRadio();
                cmbAircraft.DataSource = AircraftList;
                cmbAircraft.DisplayMember = "AircraftName";

For Issue Type we will create a hardcoded list(or if you want to create a new table in SQL with list of issues. Then create necessary files for it and make a list from those and then populate. This will be better as it allows us to be modular) The datasource is the list. The display member is what it will show on the form the first time.

for Priority you can either hardcode or create table and files as mentioned above.

For Technician. You can call a method in Business Layer Technician.cs which will then call the method GetAll in the Dataaccess layer. Once you have the list, you will create a new list of string and just store the Technician name in that list and then set the datasource of the combobox to that list.

The Reset button will clear the fields within pnlTicketDetails.

Only once eveything is filled it will it allow the user to create the ticket.

Dont Worry about displaying any thing in the contract textbox at the moment we need to create a multiple inner join sql query to get the contract and the Contract file.

IMPORTANT

The moment the user clicks the answer call you need to do the following aswell : You will need insert the EmployeeID, for now just make a public int which stores "1" and when the login is workign correctly we will update to match the current employee that is logged in. You will then also input the start time, the CallStatus which will be in progress and the call state of 1. The rest of the fields are set to null. Just create a test query in sql to see how will it insert with the null columns. Think you will be able to use the current Insert statement we have as it takes in a object and your object will have null values in certain places

All these values which you got above will need to be stored inside a object of call as u will be updating that object from below

When that is inserted you will call the FindCurrent method in Datahandler but go through the layers, it will take a int EmployeeiD and DateTime StartTime. This will return the Call ID and you will then keep that ID in the object you create earlier

When the user clicks on a client you will then then update the client object and call Update method and put that object as both parameters.

Then once the ticket details are filed in a ticket will be created

You will then call FindTicket Method in TicketDH but obviously going through the layers(Which will take Ticket Object as parameter and return the TicketID in int)

Once you have that ID you will update the Call Record with the TicketID and call update method again.

Finally when the User ends the call it will stop the duration counter, get the current time and update the call object and then update it to the database so that the CallEndTime is there.

If you need help let me know but try your best and good luck. This has to be complete before Tuesday so we can error test