Example #1
0
        private void Ok_Click(object sender, RoutedEventArgs e)
        {
            if (App.UserAccessLevel > AccessLevel.Manager)
            {
                MessageBox.Show("אינך מורשה לבצע שינויים בדף זה יש לפנות למנהל המערכת", "בעיה בהרשאות",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            int parsedSwitchId;

            if (string.IsNullOrWhiteSpace(ManufacturingNumber_Box.Text) ||
                !int.TryParse(ManufacturingNumber_Box.Text, out parsedSwitchId))
            {
                MessageBox.Show("חובה להכניס מספר בתעשיה תקין", "מספר בתעשיה לא תקין",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            using (MainModel modelContainer = new MainModel(App.WorkMode))
            {
                try
                {
                    Switch switchToEdit = null;
                    if (IsNewSwitch)
                    {
                        switchToEdit = new Switch();
                        modelContainer.SwitchSet.Add(switchToEdit);
                    }
                    else
                    {
                        switchToEdit = modelContainer.SwitchSet.Single(x => x.Id == _switchIdToEdit);
                    }

                    switchToEdit.Name        = CustomerName_Box.Text;
                    switchToEdit.CrmNum      = CustomerNum_Box.Text;
                    switchToEdit.Id          = parsedSwitchId;
                    switchToEdit.MachineType = MachineType_ComboBox.Text;
                    switchToEdit.SwRelease   = Release_ComboBox.Text;
                    switchToEdit.Comments    = Comments_Box.Text;
                    // add the switch if necessary, because all the connections depend on it
                    modelContainer.SaveChanges();

                    if (!string.IsNullOrWhiteSpace(PbxPhoneNumber_Box.Text) ||
                        !string.IsNullOrWhiteSpace(PbxUserName_Box.Text) ||
                        !string.IsNullOrWhiteSpace(PbxPass_Box.Text) ||
                        !string.IsNullOrWhiteSpace(PbxDebugPass_Box.Text) ||
                        !string.IsNullOrWhiteSpace(PbxParDataStop_ComboBox.Text))
                    {
                        PbxConnection pbxEditData      = switchToEdit.PbxConnection;
                        bool          newPbxConnection = false;
                        if (pbxEditData == null)
                        {
                            pbxEditData          = new PbxConnection();
                            pbxEditData.SwitchId = switchToEdit.Id;
                            modelContainer.PbxConnectionSet.Add(pbxEditData);
                        }

                        pbxEditData.DialNum = PbxPhoneNumber_Box.Text;
                        int parsedBaudRate = 0;
                        if (int.TryParse(PbxBoudrate_ComboBox.Text, out parsedBaudRate))
                        {
                            pbxEditData.BaudRate = parsedBaudRate;
                        }
                        pbxEditData.LoginName     = PbxUserName_Box.Text;
                        pbxEditData.LoginPassword = PbxPass_Box.Text;
                        pbxEditData.DebugPassword = PbxDebugPass_Box.Text;
                        pbxEditData.ParDataStop   = PbxParDataStop_ComboBox.Text;
                    }

                    if (!string.IsNullOrWhiteSpace(KolanPhoneNumber_Box.Text))
                    {
                        KolanConnection kolanEditData = switchToEdit.KolanConnection;
                        if (kolanEditData == null)
                        {
                            kolanEditData          = new KolanConnection();
                            kolanEditData.SwitchId = switchToEdit.Id;
                            modelContainer.KolanConnectionSet.Add(kolanEditData);
                        }

                        kolanEditData.DialNum = KolanPhoneNumber_Box.Text;
                        int parsedKolanBaudRate = 0;
                        if (int.TryParse(KolanBoudrate_ComboBox.Text, out parsedKolanBaudRate))
                        {
                            kolanEditData.BaudRate = parsedKolanBaudRate;
                        }
                        kolanEditData.ParDataStop = KolanParDataStop_ComboBox.Text;
                    }

                    if (!string.IsNullOrWhiteSpace(TelnetAddress_Box.Text) ||
                        !string.IsNullOrWhiteSpace(TelnetUserNameCS_Box.Text) ||
                        !string.IsNullOrWhiteSpace(TelnetPassCS_Box.Text) ||
                        !string.IsNullOrWhiteSpace(TelnetUserNameSS_Box.Text) ||
                        !string.IsNullOrWhiteSpace(TelnetPasswordSS_Box.Text))
                    {
                        TelnetConnection telnetEditData = switchToEdit.TelnetConnection;
                        if (telnetEditData == null)
                        {
                            telnetEditData          = new TelnetConnection();
                            telnetEditData.SwitchId = switchToEdit.Id;
                            modelContainer.TelnetConnectionSet.Add(telnetEditData);
                        }

                        telnetEditData.IpAddress  = TelnetAddress_Box.Text;
                        telnetEditData.UsernameCs = TelnetUserNameCS_Box.Text;
                        telnetEditData.PasswordCs = TelnetPassCS_Box.Text;
                        telnetEditData.UsernameSs = TelnetUserNameSS_Box.Text;
                        telnetEditData.PasswordSs = TelnetPasswordSS_Box.Text;
                    }

                    if (!string.IsNullOrWhiteSpace(ClientAddress_Box.Text) ||
                        !string.IsNullOrWhiteSpace(SiteName_Box.Text) ||
                        !string.IsNullOrWhiteSpace(NetworkUserName_Box.Text) ||
                        !string.IsNullOrWhiteSpace(NetworkPass_Box.Text) ||
                        !string.IsNullOrWhiteSpace(NetworkPort_Box.Text))
                    {
                        CheckPointVpnConnection checkPointVpnConnectionEditData = switchToEdit.CheckPointVpnConnection;
                        if (checkPointVpnConnectionEditData == null)
                        {
                            checkPointVpnConnectionEditData          = new CheckPointVpnConnection();
                            checkPointVpnConnectionEditData.SwitchId = switchToEdit.Id;
                            modelContainer.CheckPointVpnConnectionSet.Add(checkPointVpnConnectionEditData);
                        }

                        checkPointVpnConnectionEditData.IpAddress = ClientAddress_Box.Text;
                        checkPointVpnConnectionEditData.Site      = SiteName_Box.Text;
                        checkPointVpnConnectionEditData.Username  = NetworkUserName_Box.Text;
                        checkPointVpnConnectionEditData.Password  = NetworkPass_Box.Text;
                        checkPointVpnConnectionEditData.Port      = string.IsNullOrWhiteSpace(NetworkPort_Box.Text)
                            ? (short?)null
                            : short.Parse(NetworkPort_Box.Text);
                    }

                    modelContainer.SaveChanges();
                    MessageBox.Show("השינויים נשמרו בהצלחה");

                    SecondaryPage sp = new SecondaryPage();
                    Content = new Frame {
                        Content = sp
                    };
                }
                catch (DbEntityValidationException ex)
                {
                    string errors = string.Empty;
                    foreach (DbEntityValidationResult validationError in ex.EntityValidationErrors)
                    {
                        foreach (DbValidationError dbValidationError in validationError.ValidationErrors)
                        {
                            errors += dbValidationError + "\n";
                        }
                    }
                    MessageBox.Show("בעיה בשמירת המתג:\n" + errors);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("בעיה בשמירת המתג." + ex);
                }
            }
        }
Example #2
0
        public EditPage(int?switchIdToEdit)
        {
            _switchIdToEdit = switchIdToEdit;

            InitializeComponent();

            if (IsNewSwitch)
            {
                return;
            }

            using (MainModel modelContainer = new MainModel(App.WorkMode))
            {
                Switch switchToEdit = modelContainer.SwitchSet.Single(x => x.Id == _switchIdToEdit);
                ManufacturingNumber_Box.Text = _switchIdToEdit.ToString();

                CustomerNum_Box.Text      = switchToEdit.CrmNum;
                Comments_Box.Text         = switchToEdit.Comments;
                CustomerName_Box.Text     = switchToEdit.Name;
                Release_ComboBox.Text     = switchToEdit.SwRelease;
                MachineType_ComboBox.Text = switchToEdit.MachineType;

                PbxConnection allPbxData = switchToEdit.PbxConnection;
                if (allPbxData != null)
                {
                    PbxPhoneNumber_Box.Text      = allPbxData.DialNum;
                    PbxUserName_Box.Text         = allPbxData.LoginName;
                    PbxPass_Box.Text             = allPbxData.LoginPassword;
                    PbxBoudrate_ComboBox.Text    = allPbxData.BaudRate.ToString();
                    PbxDebugPass_Box.Text        = allPbxData.DebugPassword;
                    PbxParDataStop_ComboBox.Text = allPbxData.ParDataStop;
                }

                KolanConnection allKolanData = switchToEdit.KolanConnection;
                if (allKolanData != null)
                {
                    KolanPhoneNumber_Box.Text      = allKolanData.DialNum;
                    KolanBoudrate_ComboBox.Text    = allKolanData.BaudRate.ToString();
                    KolanParDataStop_ComboBox.Text = allKolanData.ParDataStop;
                }

                TelnetConnection allTelnetData = switchToEdit.TelnetConnection;
                if (allTelnetData != null)
                {
                    TelnetAddress_Box.Text    = allTelnetData.IpAddress;
                    TelnetUserNameCS_Box.Text = allTelnetData.UsernameCs;
                    TelnetPassCS_Box.Text     = allTelnetData.PasswordCs;
                    TelnetUserNameSS_Box.Text = allTelnetData.UsernameSs;
                    TelnetPasswordSS_Box.Text = allTelnetData.PasswordSs;
                }

                CheckPointVpnConnection checkPointVpnConnection = switchToEdit.CheckPointVpnConnection;
                if (checkPointVpnConnection != null)
                {
                    ClientAddress_Box.Text   = checkPointVpnConnection.IpAddress;
                    SiteName_Box.Text        = checkPointVpnConnection.Site;
                    NetworkUserName_Box.Text = checkPointVpnConnection.Username;
                    NetworkPass_Box.Text     = checkPointVpnConnection.Password;
                    if (checkPointVpnConnection.Port != null)
                    {
                        NetworkPort_Box.Text = checkPointVpnConnection.Port.ToString();
                    }
                }

                RefreshFilesList();
            }
        }
Example #3
0
        /// <summary>
        /// <para>
        /// Da de alta el comercial pasado por parámetro <paramref name="commercialRequestModel"/>.
        /// </para>
        /// </summary>
        /// <param name="commercialRequestModel">Datos del comercial que debe ser dado de alta.</param>
        /// <returns>
        /// Modelo <see cref="PostBOCommercialsResponseModel"/> con los datos de la respuesta.
        /// </returns>
        public PostBOCommercialsResponseModel CreateCommercial(PostBOCommercialsRequestModel commercialRequestModel)
        {
            PostBOCommercialsResponseModel result = new PostBOCommercialsResponseModel
            {
                Status = ResultStatus.ERROR
            };

            IDbContextTransaction dbTransaction = null;

            try
            {
                var context = _commercialRepository.GetContext();
                using (dbTransaction = context.Database.BeginTransaction())
                {
                    // Generate random pass
                    commercialRequestModel.CommercialPassword = (new Random().Next(10000000, 100000000)).ToString();

                    var toInsert = new Commercials()
                    {
                        Name                   = commercialRequestModel.CommercialName,
                        Email                  = commercialRequestModel.CommercialEmail,
                        PBXPhoneNumber         = commercialRequestModel.PBXPhoneNumber,
                        MobilePhoneNumber      = commercialRequestModel.MobilePhoneNumber,
                        Active                 = commercialRequestModel.Active,
                        Password               = _securityService.HashData(commercialRequestModel.CommercialPassword),
                        Peer                   = GetPeer(),
                        SiebelId               = commercialRequestModel.SiebelId,
                        PasswordChangeRequired = true,
                        AlternativeCommercials = new List <AlternativeCommercials>()
                    };

                    // Se da de alta en BD al nuevo comercial
                    _commercialRepository.Insert(toInsert);
                    _commercialRepository.Save();

                    foreach (AlternativeCommercialModel c in commercialRequestModel.Alternatives)
                    {
                        var alter = _commercialRepository.GetById(c.Commercial.CommercialId);
                        toInsert.AlternativeCommercials.Add(new AlternativeCommercials()
                        {
                            CommercialId            = toInsert.Id,
                            AlternativeCommercialId = c.Commercial.CommercialId,
                            Order = c.Order
                        });
                    }

                    // Se agregan los comerciales alternativos al nuevo comercial
                    _commercialRepository.Save();

                    // Conexión a PBX
                    PbxConnection pbxConnection = null;
                    if (_pbxConnect)
                    {
                        pbxConnection = new PbxConnection(_pbxServer, _pbxUser, _pbxPwd, out string pbxMsg);

                        // validacion instancia PBX
                        if (pbxConnection == null)
                        {
                            dbTransaction.Rollback();
                            result.Status  = ResultStatus.EXTERNAL_SERVICE_ERROR;
                            result.Message = "[BOCommercialsService-CreateCommercial] Could not instantiate PBX";
                            return(result);
                        }

                        // validacion PBX inicializada
                        if (!pbxConnection.IsInitialized())
                        {
                            dbTransaction.Rollback();
                            result.Status  = ResultStatus.CANNOT_CONNECT_TO_PBX;
                            result.Message = "[BOCommercialsService-CreateCommercial] " + pbxMsg;
                            return(result);
                        }

                        // petición a la PBX
                        try
                        {
                            pbxConnection.New(toInsert.Peer, toInsert.Name, toInsert.Password, () => { });
                        }
                        catch (AmiException ex)
                        {
                            dbTransaction.Rollback();

                            // Marchelo
                            // No estoy de acuerdo con retonar este error (lo correcto es utilizar el "catch (AmiException amiEx)" mas abajo)
                            // Simplemente lo dejo por consistencia con la capa HTTP.
                            result.Status  = ResultStatus.PEER_ALREADY_EXIST_IN_PBX;
                            result.Message = "[BOCommercialsService-CreateCommercial] " + ex.Message;
                            return(result);
                        }
                    }

                    result.Status   = ResultStatus.SUCCESS;
                    result.Name     = commercialRequestModel.CommercialName;
                    result.Email    = commercialRequestModel.CommercialEmail;
                    result.Password = commercialRequestModel.CommercialPassword;
                    result.Peer     = toInsert.Peer;

                    dbTransaction.Commit();
                    return(result);
                }
            }
            catch (DbUpdateException updEx)
            {
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }

                SqlException sqlEx = updEx.GetBaseException() as SqlException;
                if (sqlEx != null)
                {
                    switch (sqlEx.Number)
                    {
                    case 515:     // NOT NULL values
                                  // Determino nombre de la columna que no acepta valor NULL
                                  // EJ: "Cannot insert the value NULL into column 'SiebelId', table 'InConcert.dbo.Commercials'."
                        int    indexStart = sqlEx.Message.IndexOf("'", 0) + 1;
                        int    indexEnd   = sqlEx.Message.IndexOf("'", indexStart);
                        string columName  = sqlEx.Message[indexStart..indexEnd];
Example #4
0
        private void DialPbx_Click(object sender, RoutedEventArgs e)
        {
            string dialNum       = null;
            string loginName     = null;
            string loginPassword = null;
            long   baudRate;
            int    dataBits;
            int    stopBits;
            int    parity;
            string selectedCustomer = CustomerList_Box.SelectedItem.ToString();

            string[] selectedCustomerArr = selectedCustomer.Split(' ');
            int      switchIdSelcted     = int.Parse(selectedCustomerArr[0]);

            using (MainModel modelContainer = new MainModel(App.WorkMode))
            {
                PbxConnection allSwitchIdData = modelContainer.PbxConnectionSet.Single(s =>
                                                                                       s.SwitchId == switchIdSelcted);
                dialNum = allSwitchIdData.DialNum;

                loginName = allSwitchIdData.LoginName;

                loginPassword = allSwitchIdData.LoginPassword;

                if (allSwitchIdData.ParDataStop != null && allSwitchIdData.BaudRate != 0)
                {
                    string[] parDataStopArr = allSwitchIdData.ParDataStop.Split('-');
                    switch (parDataStopArr[0])
                    {
                    case "N":
                        parity = 0;
                        break;

                    case "O":
                        parity = 1;
                        break;

                    case "E":
                        parity = 2;
                        break;

                    case "M":
                        parity = 3;
                        break;

                    case "S":
                        parity = 4;
                        break;

                    default:
                        throw new Exception("unexpected parity: " + parDataStopArr[0]);
                    }

                    dataBits = int.Parse(parDataStopArr[1]);
                    stopBits = int.Parse(parDataStopArr[2]);

                    baudRate = allSwitchIdData.BaudRate;
                }
                else
                {
                    parity   = 0;
                    dataBits = 8;
                    stopBits = 1;
                    baudRate = 9600;
                }
            }

            string filePath = WriteScript(dialNum, loginName, loginPassword, baudRate, parity, dataBits, stopBits);

            try
            {
                using (DdeClient client = new DdeClient("PW5", "System"))
                {
                    client.Connect();
                    client.Execute($"EXECUTE {filePath}", 30);
                }
            }
            catch (Exception ex)
            {
            }

            Application.Current.MainWindow.WindowState = WindowState.Minimized;
        }
Example #5
0
        /// <summary>
        /// <para>
        /// Elimina el comercial cuyo campo 'Id' coincide con el id indicado por el parametro <paramref id="intId"/>.
        /// </para>
        /// </summary>
        /// <param name="id">Identificador del comercial.</param>
        /// <returns>
        /// Modelo <see cref="DeleteBOCommercialsResponseModel"/> con los datos de la respuesta.
        /// </returns>
        public StatusResponseModel DeleteCommercial(int id)
        {
            StatusResponseModel result = new StatusResponseModel
            {
                Status = ResultStatus.ERROR
            };

            IDbContextTransaction dbTransaction = null;

            try
            {
                var context = _commercialRepository.GetContext();
                using (dbTransaction = context.Database.BeginTransaction())
                {
                    // Issue ICCB-735
                    Sessions session = _sessionRepository.SingleOrDefault(s => s.CommercialId == id);
                    if (session != null)
                    {
                        _sessionRepository.Delete(session);
                        _sessionRepository.Save();
                    }

                    Commercials toDelete = _commercialRepository.SingleOrDefault(c => c.Id == id);
                    if (toDelete == null)
                    {
                        result.Status  = ResultStatus.NOT_FOUND;
                        result.Message = string.Format("No records found for the commercial (id:{0}).", id);
                        return(result);
                    }

                    RemoveThisComercialAsAlternative(id);
                    RemoveAlternativesOfThisComercial(id);

                    _commercialRepository.Delete(toDelete);
                    _commercialRepository.Save();

                    // Conexión a PBX
                    PbxConnection pbxConnection = null;
                    if (_pbxConnect)
                    {
                        pbxConnection = new PbxConnection(_pbxServer, _pbxUser, _pbxPwd, out string pbxMsg);

                        // validacion instancia PBX
                        if (pbxConnection == null)
                        {
                            dbTransaction.Rollback();
                            result.Status  = ResultStatus.EXTERNAL_SERVICE_ERROR;
                            result.Message = "[BOCommercialsService-UpdateCommercial] Could not instantiate PBX";
                            return(result);
                        }

                        // validacion PBX inicializada
                        if (!pbxConnection.IsInitialized())
                        {
                            dbTransaction.Rollback();
                            result.Status  = ResultStatus.CANNOT_CONNECT_TO_PBX;
                            result.Message = pbxMsg;
                            return(result);
                        }

                        // petición Delete a la PBX
                        pbxConnection.Delete(toDelete.Peer, () => { });
                    }

                    dbTransaction.Commit();
                    result.Status = ResultStatus.SUCCESS;
                    return(result);
                }
            }
            catch (AmiException amiEx)
            {
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }
                result.Status  = ResultStatus.EXTERNAL_SERVICE_ERROR;
                result.Message = "[BOCommercialsService-DeleteCommercial-AmiException] " + amiEx.Message;
                return(result);
            }
            catch (Exception e)
            {
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }
                result.Status  = ResultStatus.ERROR;
                result.Message = "[BOCommercialsService-DeleteCommercial-Exception] " + e.Message;
                return(result);
            }
        }