示例#1
0
        private void btnSendShifts_Click(object sender, EventArgs e)
        {
            int remoteUserID      = frmRemoteLogin.RemoteUserID;
            List <RemoteShift> ls = (from s in ctx.Shifts
                                     where !s.Sent
                                     select new RemoteShift
            {
                Date = s.Date,
                ShiftNum = s.ShiftNum,
                RemoteUserID = remoteUserID,
                Description = s.Description,
                RemoteRequests = (from r in s.Requests
                                  select new RemoteRequest
                {
                    FullName = r.Passenger.FullName,
                    Gender = r.Passenger.Gender,
                    PassportNum = r.Passenger.PassportNum,
                    BornDate = r.Passenger.BornDate,
                    IssueDate = r.Passenger.IssueDate,
                    ExpiryDate = r.Passenger.ExpiryDate
                }).ToList <RemoteRequest>()
            }).ToList <RemoteShift>();

            ctxCentral.RemoteShifts.AddRange(ls);
            ctxCentral.RemoteUsers.Where(u => u.ID == remoteUserID).First <RemoteUser>().LastSeen = DateTime.Now;

            try
            {
                ctxCentral.SaveChanges();
            }
            catch (System.Data.Entity.Core.EntityException ex)
            {
                if (ex.InnerException.HResult == -2146232060)
                {
                    MessageBox.Show("اتصال به پایگاه داده برقرار نشد. لطفا از اتصال به اینترنت مطمئن شوید...\n" + ex.ToString());
                }
                ctxCentral = new VisaXCenteralEntities("ASAWARI");
                return;
            }

            foreach (var shift in ctx.Shifts.Select(s => s).Where(ss => ss.Sent == false))
            {
                shift.Sent = true;
            }
            ctx.SaveChanges();

            MessageBox.Show("شیفت ها با موفقیت به مرکز ارسال شدند.", "ارسال شیفت ها", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
            refreshGrid();
        }
示例#2
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            erp.Clear();
            if (txtUserName.Text.Trim() == string.Empty)
            {
                erp.SetError(txtUserName, "نام کاربری را وارد کنید.");
                return;
            }

            if (txtFullName.Text.Trim().Length < 2)
            {
                erp.SetError(txtFullName, "نام کامل کاربر را وارد کنید.");
                return;
            }

            User usr = new User
            {
                UserName = txtUserName.Text,
                RealName = txtFullName.Text,
                Password = StringUtil.Crypt(string.Empty)
            };

            ctx.Users.Add(usr);
            if (ctx.SaveChanges() > 0)
            {
                DialogResult = DialogResult.OK;
                Close();
            }//if
        }
示例#3
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            int     id  = (int)dgvPassengers.SelectedRows[0].Cells["colRequestID"].Value;
            Request req = (from p in ctx.Requests where p.ID == id select p).First();

            if (new frmMsgBox("آیا مایل به حذف این درخواست هستید؟", "حذف در خواست " + req.Passenger.FullName, MessageBoxButtons.YesNo, MsgBoxIcon.Question).ShowDialog() == DialogResult.Yes)
            {
                ctx.Requests.Remove(req);
                ctx.SaveChanges();
                refreshGrid();
            }//if
        }
示例#4
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            User usr = (User)dgvUsers.SelectedRows[0].DataBoundItem;

            if (MessageBox.Show("آیا مایل به حذف این کاربر هستید؟", "حذف " + usr.RealName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading) == DialogResult.Yes)
            {
                ctx.Users.Remove(usr);
                try
                {
                    ctx.SaveChanges();
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException ex)
                {
                    new frmMsgBox(ex.ToString(), "امکان حذف کاربری که عملیات انجام داده وجود ندارد.").ShowDialog();
                    //MessageBox.Show("امکان حذف کاربری که عملیات انجام داده وجود ندارد.\n\n" + .Remove(500) + "...", "خطا در حذف کاربر", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    ctx.Entry(usr).Reload();
                    return;
                }
                getData();
            }//if
        }
示例#5
0
        private void btnNew_Click(object sender, EventArgs e)
        {
            byte max = ctx.Shifts.Where(s => s.Date == DateTime.Today).Select(s => s.ShiftNum).DefaultIfEmpty <byte>(0).Max();

            max++;
            string      message     = string.Format("تولید شیفت شماره {0} به تاریخ {1} توسط {2}؟", max, DateTime.Today.ToShortDateString(), Properties.Settings.Default.User.RealName);
            frmNewShift frmNewShift = new frmNewShift(message);

            if (frmNewShift.ShowDialog() == DialogResult.Yes)
            {
                ctx.Shifts.Add(new Shift
                {
                    Date        = DateTime.Today,
                    UserID      = Properties.Settings.Default.User.ID,
                    ShiftNum    = max,
                    Description = frmNewShift.txtDescription.Text
                });
                ctx.SaveChanges();
                refreshGrid();

                dgvShifts.ClearSelection();
                dgvShifts.Rows[dgvShifts.RowCount - 1].Selected = true;
            } //if
        }     //btnNew
示例#6
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            erp.Clear();
            if (txtFullName.Text.Trim().Length < 2)
            {
                erp.SetError(txtFullName, "نام کامل کاربر را وارد کنید");
                return;
            }

            CurrentUser.RealName = txtFullName.Text.Trim();
            if (ctx.SaveChanges() > 0)
            {
                DialogResult = DialogResult.OK;
                Close();
            }//if
        }
示例#7
0
        private void btnEdit_Click(object sender, EventArgs e)
        {
            ctx = new VisaXEntities();
            int         id          = (int)dgvShifts.SelectedRows[0].Cells["colID"].Value;
            Shift       shift       = (from s in ctx.Shifts where s.ID == id select s).First();
            string      message     = string.Format("ویرایش توضیحات شیفت شماره {0} با تاریخ {1} توسط {2}؟", shift.ShiftNum, shift.Date.ToShortDateString(), shift.User.RealName);
            frmNewShift frmNewShift = new frmNewShift(message);

            frmNewShift.txtDescription.Text = shift.Description;
            if (frmNewShift.ShowDialog() == DialogResult.Yes)
            {
                shift.Description = frmNewShift.txtDescription.Text;
            }

            ctx.SaveChanges();
            refreshGrid();

            dgvShifts.ClearSelection();
            dgvShifts.Rows[dgvShifts.RowCount - 1].Selected = true;
        }//btnEdit
示例#8
0
        private void receive()
        {
            VisaXCenteralEntities ctxRemote = new VisaXCenteralEntities("ASAWARI");
            VisaXEntities         ctxLocal  = new VisaXEntities();
            var locals  = ctxLocal.Passengers.ToList();
            var remotes = ctxRemote.RemotePassengers.ToList();

            var newPassengers = remotes.Where(r => !locals.Any(l => l.PassportNum == r.PassportNum)).Select(p => new Passenger()
            {
                PassportNum = p.PassportNum,
                FullName    = p.FullName,
                Gender      = p.Gender,
                BornDate    = p.BornDate,
                IssueDate   = p.IssueDate,
                ExpiryDate  = p.ExpiryDate,
                UserID      = 1
            }).ToList();

            ctxLocal.Passengers.AddRange(newPassengers);
            ctxLocal.SaveChanges();
        }
示例#9
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            string cryptedPass = StringUtil.Crypt(txtNewPass.Text);

            if (StringUtil.Crypt(txtCurPass.Text) == Properties.Settings.Default.User.Password)
            {
                if (txtNewPass.Text == txtRepPass.Text)
                {
                    Properties.Settings.Default.User.Password = cryptedPass;
                    ctx.Users.Select(u => u).Where(u => u.ID == Properties.Settings.Default.User.ID).FirstOrDefault().Password = cryptedPass;
                    ctx.SaveChanges();
                    MessageBox.Show("رمز عبور جدید تنظیم شد");
                    Close();
                }//if
                else
                {
                    MessageBox.Show("رمز عبور جدید با تکرار آن تطابق ندارد");
                }
            }
            else
            {
                MessageBox.Show("رمز عبور معتبر نیست.");
            }
        }
示例#10
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            string sucMessage = string.Empty;

            if (validateForm())
            {
                if (this.passenger == null) //if Add mode
                {
                    Passenger p = new Passenger
                    {
                        FullName    = txtFullName.Text,
                        PassportNum = txtPassportNum.Text,
                        Gender      = (byte)cmbGender.SelectedIndex,
                        UserID      = Properties.Settings.Default.User.ID
                    };

                    DateTime tempDate;
                    if (DateTime.TryParse(txtBornDate.Text, out tempDate))
                    {
                        p.BornDate = tempDate;
                    }
                    if (DateTime.TryParse(txtIssueDate.Text, out tempDate))
                    {
                        p.IssueDate = tempDate;
                    }
                    if (DateTime.TryParse(txtExpiryDate.Text, out tempDate))
                    {
                        p.ExpiryDate = tempDate;
                    }

                    p.Requests.Add(new Request
                    {
                        ShiftID = this.selectedShift.ID,
                        UserID  = Properties.Settings.Default.User.ID,
                    });

                    ctx.Passengers.Add(p);

                    sucMessage             = "رکورد جدید اضافه شد";
                    lblStatusMsg.ForeColor = Color.DarkGreen;
                    lblStatusMsg.Text      = string.Format("{0} ({1})", sucMessage, p.FullName);
                }
                else //if edit mode
                {
                    this.passenger.FullName    = txtFullName.Text;
                    this.passenger.PassportNum = txtPassportNum.Text;
                    this.passenger.Gender      = (byte)cmbGender.SelectedIndex;
                    DateTime tempDate;

                    if (DateTime.TryParse(txtBornDate.Text, out tempDate))
                    {
                        passenger.BornDate = tempDate;
                    }
                    if (DateTime.TryParse(txtIssueDate.Text, out tempDate))
                    {
                        passenger.IssueDate = tempDate;
                    }
                    if (DateTime.TryParse(txtExpiryDate.Text, out tempDate))
                    {
                        passenger.ExpiryDate = tempDate;
                    }

                    this.passenger.UserID = Properties.Settings.Default.User.ID;

                    sucMessage             = "رکورد ویرایش شد";
                    lblStatusMsg.ForeColor = Color.DarkBlue;
                    lblStatusMsg.Text      = string.Format("{0} ({1})", sucMessage, passenger.FullName);
                    if (!this.justEdit)
                    {
                        this.passenger.Requests.Add(new Request
                        {
                            ShiftID = this.selectedShift.ID,
                            UserID  = Properties.Settings.Default.User.ID
                        });
                    }
                }//else

                try
                {
                    ctx.SaveChanges();
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException ex)
                {
                    if (ex.InnerException.InnerException.Message.Contains("AK_Date_PassengerID"))
                    {
                        new frmMsgBox(ex.ToString(), "متقاضی مورد نظر قبلاً در این روز ثبت شده.", MessageBoxButtons.OK, MsgBoxIcon.Stop).ShowDialog();
                    }
                    ctx = new VisaXEntities();
                }
                this.passenger = null;
                txtPassportNum.Focus();
                txtFullName.Text = txtPassportNum.Text = txtBornDate.Text = txtExpiryDate.Text = txtIssueDate.Text = string.Empty;
            }//if
        }
示例#11
0
        private void import()
        {
            int invalidDates = 0;

            if (txtFileName.Text == string.Empty)
            {
                MessageBox.Show("ابتدا پوشه حاوی فایل های اکسل را انتخاب کنید.", "وارد کردن متقاضیان به دیتابیس", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading);
                btnBrowse_Click(null, null);
            }//if

            List <Passenger> allPassengers = new List <Passenger>();
            DirectoryInfo    info          = new DirectoryInfo(txtFileName.Text);
            var files = info.GetFiles("*.xls");

            Excel.Application excelApllication = null;
            Excel.Workbook    excelWorkBook    = null;
            Excel.Worksheet   excelWorkSheet   = null;
            excelApllication = new Excel.Application();
            System.Threading.Thread.Sleep(2000);
            double fileNum = 0;

            foreach (var file in files)
            {
                fileNum++;
                excelWorkBook  = excelApllication.Workbooks.Open(file.FullName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                excelWorkSheet = (Excel.Worksheet)excelWorkBook.Worksheets.get_Item(1);
                int rowNum = 1;
                while (excelWorkSheet.Cells[rowNum + 7, 8].Value != null)
                {
                    string passportNum = excelWorkSheet.Cells[rowNum + 7, 7].Value.ToString();
                    if (allPassengers.Select(r => r.PassportNum).Contains(passportNum) || passportNum.Length != 8)
                    {
                        rowNum++;
                        continue;
                    }//if

                    Passenger p = new Passenger()
                    {
                        PassportNum = passportNum,
                        FullName    = excelWorkSheet.Cells[rowNum + 7, 8].Value,
                        Gender      = (byte)(excelWorkSheet.Cells[rowNum + 7, 6].Value2 == "ذکر" ? 0 : 1),
                        UserID      = Properties.Settings.Default.User.ID
                    };

                    if (excelWorkSheet.Cells[rowNum + 7, 5].Value != null)
                    {
                        var bornDate   = excelWorkSheet.Cells[rowNum + 7, 5].Value2;
                        var issueDate  = excelWorkSheet.Cells[rowNum + 7, 4].Value2;
                        var expiryDate = excelWorkSheet.Cells[rowNum + 7, 3].Value2;

                        if (bornDate is double && issueDate is double && expiryDate is double)
                        {
                            p.BornDate   = DateTime.FromOADate(bornDate);
                            p.IssueDate  = DateTime.FromOADate(issueDate);
                            p.ExpiryDate = DateTime.FromOADate(expiryDate);
                        }//if
                        else
                        {
                            invalidDates++;
                        }
                    }//if

                    allPassengers.Add(p);
                    rowNum++;
                }//while
                int pr = (int)(fileNum / files.Count() * 100);
                bgw.ReportProgress(pr);
            }//foreach

            excelWorkBook.Close();
            excelApllication.Quit();
            Marshal.FinalReleaseComObject(excelWorkSheet);
            Marshal.FinalReleaseComObject(excelWorkBook);
            Marshal.FinalReleaseComObject(excelApllication);
            excelApllication = null;
            excelWorkSheet   = null;

            VisaXEntities ctx              = new VisaXEntities();
            var           dbPassengers     = ctx.Passengers.Select(pp => pp.PassportNum).ToList();
            var           uniquePassengers = new List <Passenger>();

            foreach (var p in allPassengers)
            {
                if (!dbPassengers.Contains(p.PassportNum))
                {
                    uniquePassengers.Add(p);
                }
            }

            if (uniquePassengers.Count == 0)
            {
                MessageBox.Show("هیچ رکورد جدیدِی برای وارد کردن وجود ندارد.", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading);
                return;
            }//if

            StringBuilder msg = new StringBuilder();

            msg.AppendLine("تعداد رکوردهای با تاریخ نامعتبر " + invalidDates.ToString());
            msg.AppendLine((allPassengers.Count - uniquePassengers.Count) > 0 ? string.Format("تعداد {0} متقاضی قبلا وارد شده اند.\n", allPassengers.Count - uniquePassengers.Count) : "");
            foreach (var p in uniquePassengers)
            {
                msg.AppendLine(string.Format("- {0}\t ش.پ: {1}", p.FullName, p.PassportNum));
            }

            if (new frmMsgBox(msg.ToString(), " متقاضیانی که وارد خواهند شد به شرح ذیل هستند؛ آیا مایل به وارد کردن آنها هستید؟", MessageBoxButtons.YesNo, MsgBoxIcon.Question).ShowDialog() == DialogResult.Yes)
            {
                ctx.Passengers.AddRange(uniquePassengers);
                ctx.SaveChanges();
            }//if

            Properties.Settings.Default.Save();
        }