- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Collections;
- using System.Media;
- namespace projectdemo2
- {
- class Program
- {
- static int count = 0;
- static void Main(string[] args)
- {
- Contact[] ConObj = new Contact[5];
- Message msgobj = new Message();
- int choice;
- int count2 = 1;
- int count3;
- do
- {
- Console.Clear();
- Console.WriteLine("\n\t\t\tR & S MESSAGING SYSTEM");
- Console.WriteLine("\n\t1) Enter new IMContact");
- Console.WriteLine("\n\t2) Enter new SMSContact");
- Console.WriteLine("\n\t3) Display Contacts");
- Console.WriteLine("\n\t4) Create Message");
- Console.WriteLine("\n\t5) Display Message in Queue");
- Console.WriteLine("\n\t6) Flush Message");
- Console.WriteLine("\n\t7) Edit Contact Details");
- Console.WriteLine("\n\t0) Exit");
- Console.Write("\tEnter choice : ");
- choice = int.Parse(Console.ReadLine());
- switch (choice)
- {
- case 1:
- Console.Clear();
- if (count < 5)
- {
- ConObj[count] = new IMContact();
- ConObj[count].Add();
- count++;
- }
- else
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.Beep(1500, 800);
- Console.WriteLine("Maximun Contact reached");
- Console.ReadLine();
- Console.ResetColor();
- }
- break;
- case 2:
- Console.Clear();
- if (count < 5)
- {
- ConObj[count] = new SMSContact();
- ConObj[count].Add();
- count++;
- }
- else
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.Beep(1500, 800);
- Console.WriteLine("Maximun Contact reached");
- Console.ReadLine();
- Console.ResetColor();
- }
- break;
- case 3:
- Console.Clear();
- for (int i = 0; i < ConObj.Length; i++)
- {
- if (ConObj[i] != null)
- {
- ConObj[i].Display();
- }
- }
- Console.ReadLine();
- break;
- case 4:
- Console.Clear();
- int choice2;
- for (int i = 0; i < ConObj.Length; i++)
- {
- if (ConObj[i] != null)
- {
- Console.Write(count2 + ") ");
- ConObj[i].DisplayName();
- }
- count2++;
- }
- Console.Write("Make your choice : ");
- choice2 = int.Parse(Console.ReadLine());
- count3 = choice2 - 1;
- //msgobj.SendMessage(ConObj[count3].Name, ConObj[count3].Description);
- ConObj[count3].MessageToQueue(msgobj, ConObj[count3].Name);
- Console.WriteLine("Message has been saved");
- count2 = 1;
- //ConObj[count3].MessageToQueue();
- break;
- case 5:
- msgobj.ShowMessage();
- Console.ReadLine();
- break;
- case 6:
- msgobj.FlushMsg();
- Console.WriteLine("\n\tMessages Flushed");
- Console.ReadLine();
- break;
- case 7:
- int choose;
- Console.Clear();
- for (int i = 0; i < count; i++)
- {
- if (ConObj[i] != null)
- {
- Console.Write(i + 1 + ") ");
- ConObj[i].DisplayName();
- }
- }
- Console.Write("Enter choice : ");
- choose = int.Parse(Console.ReadLine());
- ConObj[choose - 1].Edit();
- Console.ForegroundColor = ConsoleColor.Blue;
- Console.WriteLine("Contact Editted");
- Console.ReadLine();
- Console.ResetColor();
- break;
- case 0:
- Console.Clear();
- Console.BackgroundColor = ConsoleColor.DarkMagenta;
- Console.ForegroundColor = ConsoleColor.White;
- Console.WriteLine("\n\n\t\tBYE BYE");
- Console.ReadLine();
- break;
- default:
- Console.WriteLine("\n\tInvalid choice");
- break;
- }
- } while (choice != 0);
- }
- }
- abstract class Contact : IMessage
- {
- private string description;
- private string name;
- public string Description
- {
- get
- {
- return description;
- }
- set
- {
- description = value;
- }
- }
- public string Name
- {
- get
- {
- return name;
- }
- set
- {
- name = value;
- }
- }
- internal abstract void Add();
- internal abstract void Display();
- internal abstract void DisplayName();
- internal abstract void Edit();
- public virtual void MessageToQueue(Message msg, string orgA)
- {
- }
- }
- class IMContact : Contact
- {
- private string iMAddress;
- private bool onlinestatus;
- public string IMAddress
- {
- get
- {
- return iMAddress;
- }
- set
- {
- iMAddress = value;
- }
- }
- public bool OnlineStatus
- {
- get
- {
- return onlinestatus;
- }
- set
- {
- onlinestatus = value;
- }
- }
- internal override void Add()
- {
- Console.WriteLine("\n\t\t\tCreate New Messaging Contact");
- Console.Write("\n\tEnter Name : ");
- Name = Console.ReadLine();
- Console.Write("\n\tEnter Instant Messaging Address : ");
- IMAddress = Console.ReadLine();
- Description = "IMContact";
- onlinestatus = true;
- }
- internal override void Display()
- {
- Console.WriteLine("**********************************");
- Console.WriteLine("Name : " + Name);
- Console.WriteLine("Description : " + Description);
- Console.WriteLine("Address : " + IMAddress);
- Console.WriteLine("Online Status : " + OnlineStatus);
- }
- internal override void DisplayName()
- {
- Console.WriteLine(Name);
- }
- internal override void Edit()
- {
- Console.BackgroundColor = ConsoleColor.Cyan;
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Current Instant Messaging Address: " + IMAddress);
- Console.Write("Enter New Instant Messaging Address: ");
- IMAddress = Console.ReadLine();
- Console.ResetColor();
- }
- public override void MessageToQueue(Message msg,string org)
- {
- msg.SendMessage(org, Description);
- }
- }
- class SMSContact : Contact
- {
- private int telNumber;
- public int TelNumber
- {
- get
- {
- return telNumber;
- }
- set
- {
- telNumber = value;
- }
- }
- internal override void Add()
- {
- Console.WriteLine("\n\t\t\tCreate New Messaging Contact");
- do
- {
- try
- {
- Console.Write("\n\tEnter Name : ");
- Name = Console.ReadLine();
- Console.Write("\n\tEnter Telephone Number : ");
- TelNumber = int.Parse(Console.ReadLine());
- if ((TelNumber < 80000000) || (TelNumber > 99999999))
- {
- Console.Beep(1000, 400);
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\n\tPlease Enter Again");
- Console.ReadLine();
- Console.ResetColor();
- Console.Clear();
- }
- }
- catch (Exception ex)
- {
- Console.Beep(1000, 400);
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\n\tEnter Valid Number When You Try Again");
- Console.ReadLine();
- Console.ResetColor();
- Console.Clear();
- }
- } while ((TelNumber < 80000000) || (TelNumber > 99999999));
- Description = "SMSContact";
- }
- internal override void Display()
- {
- Console.WriteLine("**************************************");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Description : " + Description);
- Console.WriteLine("Telephone Number : " + TelNumber);
- }
- internal override void DisplayName()
- {
- Console.WriteLine(Name);
- }
- internal override void Edit()
- {
- Console.BackgroundColor = ConsoleColor.Cyan;
- Console.WriteLine("Name : " + Name);
- Console.WriteLine("Current Telephone Number: " + TelNumber);
- do
- {
- try
- {
- Console.Write("Enter New Telephone Number: ");
- TelNumber = int.Parse(Console.ReadLine());
- if (TelNumber < 80000000 || TelNumber > 99999999)
- {
- Console.Beep(1000, 400);
- Console.ForegroundColor = ConsoleColor.Red;
- Console.Beep(1500, 800);
- Console.WriteLine("\n\tEnter Valid Phone Number");
- Console.ReadLine();
- Console.ResetColor();
- }
- }
- catch (Exception ex)
- {
- Console.Beep(1000, 400);
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\n\tEnter Valid Number");
- Console.ReadLine();
- Console.ResetColor();
- Console.Clear();
- }
- } while (TelNumber < 80000000 || TelNumber > 99999999);
- Console.ResetColor();
- }
- public override void MessageToQueue(Message msg, string org)
- {
- msg.SendMessage(org, Description);
- }
- }
- public interface IMessage
- {
- void MessageToQueue(Message msg,string org);
- }
- public class Message
- {
- private string message;
- private string originator;
- private string recipient;
- private string type;
- private int teln;
- private Queue queueobj = new Queue(20);
- public Message()
- {
- }
- public Message(string Originator, string Type)
- {
- originator = Originator;
- type = Type;
- message = "";
- recipient = "";
- }
- public void SendMessage(string xoriginator, string xdescript)
- {
- originator = xoriginator;
- type = xdescript;
- Console.Clear();
- if (type == "IMContact")
- {
- Console.WriteLine("\n\t\t\tMessage Creating Center");
- Console.Write("\n\tEnter Message : ");
- message = Console.ReadLine();
- Console.Write("\n\tEnter IM Address : ");
- recipient = Console.ReadLine();
- }
- if (type == "SMSContact")
- {
- do
- {
- Console.WriteLine("\n\t\t\tMessage Creating Center");
- try
- {
- Console.Write("\n\tEnter Message : ");
- message = Console.ReadLine();
- Console.Write("\n\tEnter Tel number(8 Digit Phone Number) : ");
- teln = int.Parse(Console.ReadLine());
- if ((teln == 911) || (teln == 999) || (teln == 995))
- {
- break;
- }
- if (teln < 80000000 || teln > 99999999)
- {
- Console.Beep(1000, 400);
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\n\tPlease Enter Again");
- Console.ReadLine();
- Console.ResetColor();
- Console.Clear();
- }
- }
- catch (Exception ex)
- {
- Console.Beep(1000, 400);
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\n\tEnter Valid Number WWhen You Try Again");
- Console.ReadLine();
- Console.ResetColor();
- Console.Clear();
- }
- } while (teln < 80000000 || teln > 99999999);
- recipient = teln.ToString(); ;
- }
- queueobj.Enqueue("Originator: " + originator + " Recipient: " + recipient + " Message: " + message);
- }
- public void ShowMessage()
- {
- Console.Clear();
- Console.BackgroundColor = ConsoleColor.Green;
- foreach (string asd in queueobj)
- {
- Console.WriteLine(asd);
- }
- Console.ResetColor();
- }
- public void FlushMsg()
- {
- ShowMessage();
- queueobj.Clear();
- }
- }
- }