PDA

View Full Version : ایجاد آلارم در برنامه سی شارپ



ali_general
یک شنبه 22 دی 1392, 14:22 عصر
با سلام
می خواستم بدونم من یک برنامه سی شارپ دارم که میخوام در مواقعی که کاربر یک تغییر در نرم افزار ایجاد کرد یک آلارم به ادمین بدهد و پنجره ای برای ادمین نمایش داده شود.
ممنون می شم اگه جواب بدین

goldoon
یک شنبه 22 دی 1392, 20:17 عصر
سلام
شما میتونی یک جدول به نام event ایجاد کنی که هربار کابری تغییری توی نرم افزارایجاد میشه یک رکورد به اسم همون کاربر و با ساعت و تاریخ توی جدول درج میشه
حالا سمت برنامه ادمین یک تایمر بزار که هر یک دقیقه این جدول را چک کنه اگر پیغام نمایش داده نشده ای وجود داشت یک فرم باز بشه و به ادمین گزارش کنه

Mousavmousab
دوشنبه 23 دی 1392, 11:45 صبح
دوست عزیز
goldoon (http://barnamenevis.org/member.php?268604-goldoon)
http://barnamenevis.org/images/statusicon/user-online.png
سک مثال می زنی به صورت عملی از Event ما ببینیم منظور شما چیه ؟ کامل لازم نیست مثلاٌ کد Insert توی Table را نمی خواد بنویسی کد سی شارپی را بنویس و بیشتر توضیح بده
ممنون میشیم.

hamid_hr
دوشنبه 23 دی 1392, 12:29 عصر
اين چيزي كه ميخواي يه چيزي شبيه به همن برنامه اي هست كه اجرا شده
http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1905443&viewfull=1#post1905443

goldoon
دوشنبه 23 دی 1392, 12:33 عصر
خب حالا که توضیح کامل می خاین دقیقا از رو برنامه خودم مثال می زنم
یه جدول تعریف کردم به صورت شکل زیر
115300115301

حالا هرجا لازم باشه که یک آلارمی را برای یک کاربر بفرستم توی همون قسمت از برنامه یک ردیف به جدول اضافه میکنم
با زمان و تاریخ دقیق
البته جدول من یه ستون اضافه داره که نوع آلارم را مشخص میکنه ،شما اگه فقط یک نوع آلارم دارین نیازی به ستون نوع رویداد ندارید.
من خودم توی این قسمت برنامه از linq استفاده کردم که تابع اینزرت به جدولم تابع زیر می باشد.

public void insertactioncenter(string types,string date,string time)
{
PAYADATA.DatalinqactioncenterDataContext db = new PAYADATA.DatalinqactioncenterDataContext();
PAYADATA.A_actioncenter tb = new PAYADATA.A_actioncenter();
tb.xdate=date;
tb.xissolved= false;
tb.xtime= time;
tb.xtypeid= db.a_typeofactions.Where(c=> c.xenglishname==types).Select(c=> c.xid).Single();
db.A_actioncenters.InsertOnSubmit(tb);
db.SubmitChanges();
}

میرسیم به نمایش آلارم برای کاربر
خب برا این قسمت یک تایمر تعریف کردم با پریود 30 ثانیه(دلبخواه) که چک میکنه ببینه برا این کاربر رویدادی ثبت شده یا نه
برای اینکار با یک کوئری توی جدول جستجو میکنیم و ردیف هایی را که xissolved اونها false می باشد را پیدا کرده و اگر چنین رکوردی پیدا شد به کاربر اعلام میکنه
xissolved برای این استفاده شده که وقتی کاربر به این رویداد رسیدگی کرد و مشکل را حل نمود با true کردن این ستون ،از نمایش مجدد رویداد جلوگیری کنیم

hamid_hr
دوشنبه 23 دی 1392, 12:37 عصر
خب فك فقط 50 تا سيستم داشته باشيم
هر دقيقه حداقل 100 تا سلكت مياد كه ببينه الارم داره يه نه
خيلي شبكه رو شلوغ ميكنه و ترافيك ايجاد ميكنه

goldoon
دوشنبه 23 دی 1392, 12:40 عصر
خيلي شبكه رو شلوغ ميكنه و ترافيك ايجاد ميكنه
خب چکار کنم؟:ناراحت::اشتباه:

hamid_hr
دوشنبه 23 دی 1392, 12:44 عصر
يه چيزي شبيه به اين
http://barnamenevis.org/showthread.php?425797-%D8%A7%D8%B9%D9%84%D8%A7%D9%85-%D8%B1%D9%81%D8%B1%D8%B4-%D8%AF%D8%B1-%D8%B3%D9%85%D8%AA-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D9%87%D8%A7-%D9%88-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%A7%D9%86&p=1905348&viewfull=1#post1905348

goldoon
دوشنبه 23 دی 1392, 12:55 عصر
این برنامه برای من مناسب نیست :(
من چندین نوع هشدار دارم که باید به کاربر نمایش بدهد.
تازه بعضی هشدار ها را خود سیستم تشخیص می ده و میفرسه
و مشکل دیگه اینکه برنامه م رو اسم و گروه کاربر ها براشون هشدار میفرسه
یعنی هر کاربر ممکنه از هرسیستم موجود توی شبکه لاگین کنه و آی پی خاصی نداره
البته بازم روی این برنامه که پیشنهاد دادین فک می کنم ببینم می تونم ازش استفاده کنم