コード例 #1
0
        public bool Save(CommonModelHelper model)
        {
            bool isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "ActionDetails"
                };
                ModelBinder.SetCulturalValue(model.EstimationAction, model, culturalItems);
                model.EstimationAction.OperationDate = DateTime.Now;
                model.EstimationAction.Estimation    = _dbContext.Estimations.Find(model.EstimationAction.EstimationID);
                if (model.EstimationAction.ID == Guid.Empty)
                {
                    model.EstimationAction.ID = Guid.NewGuid();
                    _dbContext.EstimationActions.Add(model.EstimationAction);
                }
                else
                {
                    _dbContext.Entry(model.EstimationAction).State = EntityState.Modified;
                }
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "EstimationAction", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
コード例 #2
0
        public bool Save(CommonModelHelper model)
        {
            var isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "BillingAddress", "ClientAddress", "BillingCompanyName", "DeliveryCompanyName", "DeliveryAddress", "Remarks"
                };
                ModelBinder.SetCulturalValue(model.Estimation, model, culturalItems);
                model.Estimation.EstimationNo     = GenerateEstimationNumber(model.ApplicationID);
                model.Estimation.EstimationType   = (int)EstimationType.Project;
                model.Estimation.EstimationStatus = (int)EstimationStatus.Ordered;
                ModelBinder.ModifyGuidValue(model.Estimation);
                //cmd.Parameters.AddWithValue("@ProjectID", DBNull.Value);
                if (model.Estimation.ID == Guid.Empty)
                {
                    model.Estimation.ID = Guid.NewGuid();
                    model.Estimation.RegistrationDate = DateTime.Now;
                    _dbContext.Estimations.Add(model.Estimation);
                }
                else
                {
                    _dbContext.Entry(model.Estimation).State = EntityState.Modified;
                }
                //Save or update Estimation details
                foreach (var item in model.EstimationDetails)
                {
                    item.EstimationID = model.Estimation.ID;
                    ModelBinder.ModifyGuidValue(item);
                    if (item.ID == Guid.Empty)
                    {
                        item.ID = Guid.NewGuid();
                        _dbContext.EstimationDetails.Add(item);
                    }
                    else
                    {
                        _dbContext.Entry(item).State = EntityState.Modified;
                    }
                }
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "DTPEstimation", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
コード例 #3
0
        public void UpdateStatus(DeviceDto _deviceDto, int nPort)
        {
            try
            {
                //amit 14112016
                if (Storage.IsLogEnable == "1")
                {
                    string Message = "Camera Status Service UpdateStatus():DeviceID" + _deviceDto.DeviceId + "--Port:" + nPort;
                    InsertBrokerOperationLog.AddProcessLog(Message);
                }
                var  nvrCamera = _deviceDto as NvrCameraDto;
                bool camStatus = IsDeviceAlive(nvrCamera.CameraIp, nPort);


                if (camStatus != null)
                {
                    using (var ctx = new CentralDBEntities())
                    {
                        var nDeviceEntry = ctx.tblCameraStatus.FirstOrDefault(x => x.DeviceID == nvrCamera.DeviceId);
                        if (nDeviceEntry != null)//Entry exist
                        {
                            nDeviceEntry.Status = camStatus;
                            ctx.SaveChanges();
                        }
                        else
                        {
                            int camID        = Int32.Parse(_deviceDto.DeviceId.ToString());
                            var cameraStatus = new AMS.Broker.DataStore.tblCameraStatus
                            {
                                Status   = camStatus,
                                DeviceID = camID
                            };
                            ctx.tblCameraStatus.Add(cameraStatus);
                            ctx.SaveChanges();
                        }
                    }
                }//
                 //TestFile(nvrCamera);
            }
            catch (Exception ex)
            {
                //amit 14112016
                if (Storage.IsLogEnable == "1")
                {
                    string Message = "CameraStatusService UpdateStatus() Exception" + ex.Message;
                    InsertBrokerOperationLog.AddProcessLog(Message);
                }
                _logger.Info("CameraStatusService UpdateStatus() Exception" + ex.Message);
            }
        }
コード例 #4
0
        public List <EstimationModel> DeleteEstimation(EstimationModel model)
        {
            Estimation        Estimation;
            List <Estimation> MasterDataList;

            try
            {
                MasterDataList = _dbContext.Estimations.ToList();
                Estimation     = MasterDataList.Find(item => item.ID == model.ID);
                if (Estimation != null)
                {
                    //Estimation.IsDeleted = true;
                    _dbContext.Entry(Estimation).State = EntityState.Modified;
                    _dbContext.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "Estimation", message);
                throw new Exception(message);
            }

            BaseModel.CurrentCulture = model.CurrentCulture;
            BaseModel.CurrentUserID  = model.CurrentUserID;
            return(GetAllEstimationList(BaseModel));
        }
コード例 #5
0
        public void InsertNotifiedAlert(string AlertID, string strIp, bool IsSuccess)
        {
            try
            {
                int      alertID         = int.Parse(AlertID);
                DateTime currentDateTime = DateTime.Now;
                using (var context = new CentralDBEntities())
                {
                    var _tblAlertEscalationLog = new tblAlertEscalationLog
                    {
                        AlertID            = alertID,
                        IdentifierIP       = strIp,
                        EscalationDatetime = currentDateTime,
                        EscalationStatus   = IsSuccess,
                    };

                    context.tblAlertEscalationLog.Add(_tblAlertEscalationLog);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                var msg = "EscallationInformService- InsertNotifiedAlert()  Exception:" + ex.Message;
                InsertBrokerOperationLog.AddProcessLog(msg);
            }
        }
コード例 #6
0
        public bool UpdateNotificationsAsRead(BaseViewModel model)
        {
            var flag = true;

            try
            {
                var user          = _dbContext.UserInformations.Find(model.CurrentUserID);
                var approveStatus = (int)EstimationApprovalStatus.Approved;
                var readStatus    = (int)EstimationApprovalStatus.Approved;
                var items         = _dbContext.EstimationApprovals.Where(x => x.ApproverID == user.EmployeeID && x.Status != approveStatus && x.Status != readStatus).ToList();
                items.ForEach(item =>
                {
                    item.Status = (int)EstimationApprovalStatus.Read;
                    _dbContext.Entry(item).State = EntityState.Modified;
                });
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                flag = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "UpdateNotificationsAsRead", message);
                throw new Exception(ex.Message);
            }
            return(flag);
        }
コード例 #7
0
        public bool SendRequest(CommonModelHelper model)
        {
            var flag         = true;
            var items        = new List <Company>();
            var emailService = new EmailService();

            try
            {
                var estimation = _dbContext.Estimations.Find(model.Estimation.ID);
                var histories  = _dbContext.EstimationRequestHistories.Where(h => h.EstimationID == model.Estimation.ID).ToList();
                var hids       = histories.Select(h => h.Company.ID).ToList();
                var checkedIds = model.CompanyModels.Select(h => h.ID).ToList();
                histories.ForEach(h =>
                {
                    if (!checkedIds.Contains(h.Company.ID))
                    {
                        _dbContext.EstimationRequestHistories.Remove(h);
                    }
                });
                model.CompanyModels.ForEach(cm =>
                {
                    var isExist = _dbContext.EstimationRequestHistories.Any(h => h.Company.ID == cm.ID);
                    var company = _dbContext.Companies.Find(cm.ID);
                    if (!isExist)
                    {
                        var obj = new EstimationRequestHistory
                        {
                            ID           = Guid.NewGuid(),
                            EstimationID = model.Estimation.ID,
                            CompanyID    = cm.ID,
                            Company      = company,
                            CreatedDate  = DateTime.Now,
                            CreatedBy    = model.CurrentUserID
                        };
                        _dbContext.EstimationRequestHistories.Add(obj);
                    }
                    if (!string.IsNullOrEmpty(company.Email))
                    {
                        items.Add(company);
                    }
                });
                _dbContext.SaveChanges();
                items.ForEach(i =>
                {
                    var subject = $"Estimation Request";
                    emailService.SendEmail(i.Email, null, null, subject, ProcessTemplate(model, i, estimation), null, true);
                });
            }
            catch (Exception ex)
            {
                flag = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "Company", message);
                throw new Exception(ex.Message);
            }
            return(flag);
        }
コード例 #8
0
        public bool Save(CommonModelHelper model)
        {
            var isSuccess = true;

            try
            {
                var culturalItems = new List <string> {
                    "CoordinatorPrecautions", "CoordinatorNotes", "NotesToStaff", "ComplainDetails", "AccountingRelatedMemo"
                };
                ModelBinder.SetCulturalValue(model.Order, model, culturalItems);
                model.Order.ApplicationID = model.ApplicationID;
                model.Order.OrderStatus   = (int)OrderStatus.Ordered;
                //Save Order
                if (model.Order.ID == Guid.Empty)
                {
                    model.Order.ID         = Guid.NewGuid();
                    model.Order.InvoiceNo  = GenerateInvoiceNo();
                    model.Order.Estimation = _dbContext.Estimations.Find(model.Estimation.ID);
                    model.Order.OrderNo    = GenerateOrderNo();
                    model.Order.CompanyID  = model.Estimation.ClientID;
                    model.Order.Company    = _dbContext.Companies.Find(model.Order.CompanyID);
                    _dbContext.Orders.Add(model.Order);
                }
                else
                {
                    _dbContext.Entry(model.Order).State = EntityState.Modified;
                }
                //Save or update Order details
                foreach (var item in model.OrderDetails)
                {
                    item.OrderID = model.Order.ID;
                    item.Order   = model.Order;
                    ModelBinder.ModifyGuidValue(item);
                    if (item.ID == Guid.Empty)
                    {
                        item.ID = Guid.NewGuid();
                        _dbContext.OrderDetails.Add(item);
                    }
                    else
                    {
                        _dbContext.Entry(item).State = EntityState.Modified;
                    }
                }
                //Update Estimation
                //_dbContext.Entry(model.Estimation).State = EntityState.Modified;
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccess = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "OrderDetails", message);
                throw new Exception(message);
            }
            return(isSuccess);
        }
コード例 #9
0
ファイル: StaffService.cs プロジェクト: EnggJibon/HiworkERP
        public bool SaveNarration(NarrationCommon narrationCommon)
        {
            var isSuccessful = true;
            Staff_NarrationInformation staffNarrationInformation = null;
            Staff_NarrationVoiceFiles  staffNarrationVoiceFiles  = null;

            try
            {
                if (narrationCommon.NarrationInformationModel != null)
                {
                    staffNarrationInformation = Mapper.Map <NarrationInformationModel, Staff_NarrationInformation>(narrationCommon.NarrationInformationModel);
                    if (staffNarrationInformation.ID == Guid.Empty)
                    {
                        staffNarrationInformation.ID          = Guid.NewGuid();
                        staffNarrationInformation.CreatedBy   = narrationCommon.NarrationInformationModel.CurrentUserID;
                        staffNarrationInformation.CreatedDate = DateTime.Now;
                        _dbContext.Staff_NarrationInformation.Add(staffNarrationInformation);
                    }
                    else
                    {
                        staffNarrationInformation.UpdatedBy               = narrationCommon.NarrationInformationModel.CurrentUserID;
                        staffNarrationInformation.UpdatedDate             = DateTime.Now;
                        _dbContext.Entry(staffNarrationInformation).State = EntityState.Modified;
                    }
                }

                if (narrationCommon.NarrationVoiceFilesModel != null)
                {
                    staffNarrationVoiceFiles = Mapper.Map <NarrationVoiceFilesModel, Staff_NarrationVoiceFiles>(narrationCommon.NarrationVoiceFilesModel);
                    if (staffNarrationVoiceFiles.ID == Guid.Empty)
                    {
                        staffNarrationVoiceFiles.ID          = Guid.NewGuid();
                        staffNarrationVoiceFiles.CreatedBy   = narrationCommon.NarrationVoiceFilesModel.CurrentUserID;
                        staffNarrationVoiceFiles.CreatedDate = DateTime.Now;
                        _dbContext.Staff_NarrationVoiceFiles.Add(staffNarrationVoiceFiles);
                    }
                    else
                    {
                        staffNarrationVoiceFiles.UpdatedBy               = narrationCommon.NarrationVoiceFilesModel.CurrentUserID;
                        staffNarrationVoiceFiles.UpdatedDate             = DateTime.Now;
                        _dbContext.Entry(staffNarrationVoiceFiles).State = EntityState.Modified;
                    }
                }

                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(narrationCommon.NarrationInformationModel.CreatedBy.Value, "staffTRExperience", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
コード例 #10
0
        public static void Logout(this CentralDBEntities context, Guid authToken, string identifier)
        {
            if (context != null)
            {
                var logoutObject = context.Login.FirstOrDefault(x => x.AuthToken == authToken);


                if (logoutObject != null)
                {
                    logoutObject.LogoutDate = DateTime.Now;
                }

                context.SaveChanges();
            }
        }
コード例 #11
0
        public void UpdateCameraStatusold()
        {
            try
            {
                using (var context = new CentralDBEntities())
                {
                    // _logger.Info("");
                    _logger.Info("CameraStatus: GetNVRCameraCollection");

                    var resultsCollection = context.Device;

                    var result2 = resultsCollection.Select(x => x).ToArray();

                    //  var result = resultsCollection.Select(DeviceDto,resultsCollection).ToArray();

                    var result = result2.Select(Mapper.Map <DeviceDto>).ToArray();

                    foreach (var deviceDto in result)
                    {
                        if (deviceDto is NvrCameraDto)
                        {
                            try
                            {
                                //create rtsp url
                                var nvrCamera = deviceDto as NvrCameraDto;

                                if (nvrCamera.CameraIp != null && nvrCamera.CameraIp != "")
                                {
                                    int nPort = 554;
                                    if (nvrCamera.CameraPort != null || nvrCamera.CameraPort != "")
                                    {
                                        nPort = int.Parse(nvrCamera.CameraPort);
                                    }
                                    //string camUrl = "rtsp://*****:*****@" + nvrCamera.CameraIp + ":554/Streaming/Channels/2";

                                    //check status of camera
                                    bool camStatus = IsDeviceAlive(nvrCamera.CameraIp, nPort);
                                    //check the entry in tblCameraStatus

                                    /*if (nvrCamera.DeviceId == 331)
                                     * {
                                     *
                                     * }*/

                                    if (camStatus != null)
                                    {
                                        using (var ctx = new CentralDBEntities())
                                        {
                                            var nDeviceEntry = ctx.tblCameraStatus.FirstOrDefault(x => x.DeviceID == nvrCamera.DeviceId);
                                            if (nDeviceEntry != null)//Entry exist
                                            {
                                                nDeviceEntry.Status = camStatus;
                                                ctx.SaveChanges();
                                            }
                                            else
                                            {
                                                int camID        = Int32.Parse(deviceDto.DeviceId.ToString());
                                                var cameraStatus = new AMS.Broker.DataStore.tblCameraStatus
                                                {
                                                    Status   = camStatus,
                                                    DeviceID = camID
                                                };
                                                ctx.tblCameraStatus.Add(cameraStatus);
                                                ctx.SaveChanges();
                                            }
                                        }
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                _logger.Info("CameraStatusService UpdateCameraStatusold() Exception" + ex.Message);
                                string Message = "CameraStatusService UpdateCameraStatusold() Exception" + ex.Message;
                                InsertBrokerOperationLog.AddProcessLog(Message);
                            }

                            /*var camCollection = context.tblCameraStatus.Where(x => x.DeviceID == deviceDto.DeviceId);
                             *
                             * var results = camCollection.Select(x => x).ToArray();
                             *
                             * var resultCam = results.Select(Mapper.Map<tblCameraStatusDto>).ToArray();
                             *
                             * int camID = Int32.Parse(deviceDto.DeviceId.ToString());
                             *
                             * if (resultCam.Count() == 0)
                             * {
                             *  //insert
                             *  var cameraStatus = new tblCameraStatus
                             *  {
                             *      Status = camStatus,
                             *      DeviceID = camID
                             *  };
                             *  context.tblCameraStatus.Add(cameraStatus);
                             *  context.SaveChanges();
                             * }
                             * else
                             * {
                             *  //update
                             *  AMS.Broker.DataStore.tblCameraStatus camsta = (from x in context.tblCameraStatus where x.DeviceID == camID select x).First();
                             *  camsta.Status = camStatus;
                             *  context.SaveChanges();
                             * }
                             */
                            //update into db
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Info("CameraStatusService UpdateCameraStatusold() Exception" + ex.Message);
                string Message = "CameraStatusService UpdateCameraStatusold() Exception1" + ex.Message;
                InsertBrokerOperationLog.AddProcessLog(Message);
            }
        }
コード例 #12
0
        public bool SaveTranscriptionEstimation(CommonModelHelper_Transcription model)
        {
            var isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "BillingAddress", "ClientAddress", "BillingCompanyName", "DeliveryCompanyName", "DeliveryAddress", "Remarks", "CoordinatorNotes", "QuotationNotes"
                };
                ModelBinder.SetCulturalValue(model.Estimation, model, culturalItems);

                model.Estimation.EstimationNo   = GenerateEstimationNumber(model.ApplicationID);
                model.Estimation.EstimationType = (int)EstimationType.Transcription;
                if (model.Estimation.EstimationStatus == 0)
                {
                    model.Estimation.EstimationStatus = (int)EstimationStatus.Ordered;
                }
                ModelBinder.ModifyGuidValue(model.Estimation);
                //cmd.Parameters.AddWithValue("@ProjectID", DBNull.Value);
                if (model.Estimation.ID == Guid.Empty)
                {
                    model.Estimation.ID = Guid.NewGuid();
                    model.Estimation.RegistrationDate = DateTime.Now;
                    _dbContext.Estimations.Add(model.Estimation);
                }
                else
                {
                    //model.Estimation.FirstDeliveryDate = null;
                    //model.Estimation.FinalDeliveryDate = null;
                    _dbContext.Entry(model.Estimation).State = EntityState.Modified;
                }
                //Save or update Estimation details
                foreach (var item in model.EstimationDetails)
                {
                    item.EstimationID = model.Estimation.ID;
                    ModelBinder.ModifyGuidValue(item);

                    if ((item.ID == Guid.Empty) && (!item.IsMarkedForDelete))
                    {
                        item.ID = Guid.NewGuid();
                        var mapItem = Mapper.Map <EstimationDetailsModel, EstimationDetail>(item);
                        _dbContext.EstimationDetails.Add(mapItem);
                    }
                    else
                    {
                        if ((!item.IsMarkedForDelete) && (item.ID != Guid.Empty))
                        {
                            var mapItem = Mapper.Map <EstimationDetailsModel, EstimationDetail>(item);
                            _dbContext.Entry(mapItem).State = EntityState.Modified;
                        }
                        if ((item.IsMarkedForDelete) && (item.ID != Guid.Empty))
                        {
                            var itm = _dbContext.EstimationDetails.Find(item.ID);
                            _dbContext.EstimationDetails.Remove(itm);
                        }
                    }
                }
                #region "Commented"
                ////Save file type
                //var existingFileTypes = _dbContext.EstimationDeliveryFileTypes.Where(x => x.Estimation.ID == model.Estimation.ID).ToList();
                //var existingWorkContent = _dbContext.EstimationWorkContents.Where(x => x.Estimation.ID == model.Estimation.ID).ToList();
                //existingFileTypes?.ForEach(eft =>
                //{
                //    _dbContext.EstimationDeliveryFileTypes.Remove(eft);
                //});
                //existingWorkContent?.ForEach(ewc =>
                //{
                //    _dbContext.EstimationWorkContents.Remove(ewc);
                //});
                //model.FileTypes?.ForEach(ft =>
                //{
                //    var fileType = new EstimationDeliveryFileType
                //    {
                //        ID = Guid.NewGuid(),
                //        Estimation = model.Estimation,
                //        FileType = ft.FileType,
                //        Version = ft.Version,
                //        IsDeleted = false
                //    };
                //    _dbContext.EstimationDeliveryFileTypes.Add(fileType);
                //});
                ////Save work content
                //model.WorkContents?.ForEach(wc =>
                //{
                //    var content = new EstimationWorkContent
                //    {
                //        ID = Guid.NewGuid(),
                //        Estimation = model.Estimation,
                //        WorkContent = wc.WorkContent,
                //        IsDeleted = false
                //    };
                //    _dbContext.EstimationWorkContents.Add(content);
                //});
                #endregion "Commented"
                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "TranscriptionEstimation", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
コード例 #13
0
        public bool Save(CommonModelHelper model)
        {
            var isSuccessful = true;

            try
            {
                var culturalItems = new List <string> {
                    "BillingAddress", "ClientAddress", "BillingCompanyName", "DeliveryCompanyName", "DeliveryAddress", "Remarks"
                };
                ModelBinder.SetCulturalValue(model.Estimation, model, culturalItems);
                model.Estimation.EstimationNo     = GenerateEstimationNumber(model.ApplicationID);
                model.Estimation.EstimationType   = (int)EstimationType.Narration;
                model.Estimation.EstimationStatus = (int)EstimationStatus.Ordered;
                ModelBinder.ModifyGuidValue(model.Estimation);
                //cmd.Parameters.AddWithValue("@ProjectID", DBNull.Value);
                if (model.Estimation.ID == Guid.Empty)
                {
                    model.Estimation.ID = Guid.NewGuid();
                    model.Estimation.RegistrationDate = DateTime.Now;
                    _dbContext.Estimations.Add(model.Estimation);
                }
                else
                {
                    _dbContext.Entry(model.Estimation).State = EntityState.Modified;
                }
                //Save or update Estimation details
                foreach (var item in model.EstimationDetails)
                {
                    item.EstimationID = model.Estimation.ID;

                    ModelBinder.ModifyGuidValue(item);
                    if (item.ID == Guid.Empty)
                    {
                        item.ID = Guid.NewGuid();
                        _dbContext.EstimationDetails.Add(item);
                    }
                    else
                    {
                        _dbContext.Entry(item).State = EntityState.Modified;
                    }
                }
                //Save file type
                var existingWorkContent = _dbContext.EstimationWorkContents.Where(x => x.Estimation.ID == model.Estimation.ID).ToList();

                existingWorkContent?.ForEach(ewc =>
                {
                    _dbContext.EstimationWorkContents.Remove(ewc);
                });

                //Save work content
                model.WorkContents?.ForEach(wc =>
                {
                    var content = new EstimationWorkContent
                    {
                        ID          = Guid.NewGuid(),
                        Estimation  = model.Estimation,
                        WorkContent = wc.WorkContent,
                        IsDeleted   = false
                    };
                    _dbContext.EstimationWorkContents.Add(content);
                });

                model.estimationCompetencies?.ForEach(ec =>
                {
                    var content = new EstimationCompetency
                    {
                        ID               = Guid.NewGuid(),
                        Estimation       = model.Estimation,
                        CompetencyType   = ec.CompetencyType,
                        CompetencyDetail = ec.CompetencyDetail
                    };
                    _dbContext.EstimationCompetencies.Add(content);
                });

                if (model.EstimationNarrationExpense.ID == Guid.Empty)
                {
                    model.EstimationNarrationExpense.ID           = Guid.NewGuid();
                    model.EstimationNarrationExpense.EstimationID = model.Estimation.ID;
                    _dbContext.EstimationNarrationExpenses.Add(model.EstimationNarrationExpense);
                }
                else
                {
                    _dbContext.Entry(model.EstimationNarrationExpense).State = EntityState.Modified;
                }

                _dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                isSuccessful = false;
                IErrorLogService errorLog = new ErrorLogService();
                string           message  = ex.InnerException != null ? ex.InnerException.InnerException.Message : ex.Message;
                errorLog.SetErrorLog(model.CurrentUserID, "NarrationEstimation", message);
                throw new Exception(message);
            }
            return(isSuccessful);
        }
コード例 #14
0
        public void ProcessDevTimeSync()
        {
            try
            {
                //Log time
                // System.Windows.Application.Current.Dispatcher.BeginInvoke((Action)(() =>
                //{
                //    _MainWindow.LogText.AppendText("\n\n" + DateTime.Now.ToString() + "  Process Hik Cam for Ip " + strIp + " Started ..." + _nCount.ToString());
                //}));
                // OperationLogs.AddLog("Process Hik Cam for Ip " + strIp + " Started ... " + _nCo.ToString() + " " + _nCount.ToString());
                try
                {
                    _ConnectionTimeOut = Int32.Parse(ConnectTimeOut);// *1000;
                }
                catch (Exception ex)
                {
                    InsertBrokerOperationLog.AddProcessLog("Error _ConnectionTimeOut ..." + ex.Message);
                }

                System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
                var result  = clientSocket.BeginConnect(strIp, 554, null, null);
                var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(_ConnectionTimeOut));//TimeSpan.FromSeconds(50));

                if (success)
                {
                    try
                    {
                        _hikContime = uint.Parse(HikConnectTime) * 1000;
                    }
                    catch (Exception ex)
                    {
                    }

                    CHCNetSDK.NET_DVR_SetConnectTime(_hikContime, 1);//10000, 1);
                    Int32 DVRPortNumber = nPort;

                    m_lUserID = CHCNetSDK.NET_DVR_Login_V30(strIp, DVRPortNumber, strUserName, strPassword, ref m_struDeviceInfo);
                    if (m_lUserID == -1)
                    {
                        //Login failed
                        //Log message... strIp Camera login failed
                        InsertBrokerOperationLog.AddProcessLog(strIp + " :Login failed ...");
                        StopInterface();
                        return;
                    }
                    else
                    {
                        InsertBrokerOperationLog.AddProcessLog(strIp + " :Login Success ...");
                    }
                    CHCNetSDK.NET_DVR_TIME CurTime;
                    CurTime.dwYear   = uint.Parse(DateTime.Now.Year.ToString());
                    CurTime.dwMonth  = uint.Parse(DateTime.Now.Month.ToString());
                    CurTime.dwDay    = uint.Parse(DateTime.Now.Day.ToString());
                    CurTime.dwHour   = uint.Parse(DateTime.Now.Hour.ToString());
                    CurTime.dwMinute = uint.Parse(DateTime.Now.Minute.ToString());
                    CurTime.dwSecond = uint.Parse(DateTime.Now.Second.ToString());

                    IntPtr pnt = Marshal.AllocHGlobal(Marshal.SizeOf(CurTime));
                    try
                    {
                        // Copy the struct to unmanaged memory.
                        Marshal.StructureToPtr(CurTime, pnt, false);
                        uint _size     = (uint)Marshal.SizeOf(CurTime);
                        var  IsTimeSet = CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_TIMECFG, 0, pnt, _size);

                        if (IsTimeSet == true)
                        {
                            //Log message......Successfuly Time Sync strIp Camera
                            try
                            {
                                using (var ctx = new CentralDBEntities())
                                {
                                    var tblDeviceSync = ctx.tblTimeSyncinfo.FirstOrDefault(x => x.DeviceID == _deviceID);
                                    tblDeviceSync.DateTimeSyncStatus = 1;
                                    ctx.Entry(tblDeviceSync).State   = System.Data.EntityState.Modified;
                                    ctx.SaveChanges();
                                }
                            }
                            catch (Exception ex)
                            {
                            }
                            InsertBrokerOperationLog.AddProcessLog("Successfuly Time Sync: " + strIp + " Camera ...");
                        }
                        else
                        {
                            //Log message......Failed Time Sync strIp Camera  .
                            try
                            {
                                using (var ctx = new CentralDBEntities())
                                {
                                    var tblDeviceSync = ctx.tblTimeSyncinfo.FirstOrDefault(x => x.DeviceID == _deviceID);
                                    tblDeviceSync.DateTimeSyncStatus = 0;
                                    ctx.Entry(tblDeviceSync).State   = System.Data.EntityState.Modified;
                                    ctx.SaveChanges();
                                }
                            }
                            catch (Exception ex)
                            {
                            }
                            InsertBrokerOperationLog.AddProcessLog("Failed Time Sync: " + strIp + " Camera ...");
                        }
                        StopInterface();
                        clientSocket.EndConnect(result);
                    }
                    catch (Exception ex)
                    {
                        InsertBrokerOperationLog.AddProcessLog("Error  ProcessDevTimeSync NET_DVR_SetDVRConfig ..." + ex.Message);
                    }
                    finally
                    {
                        // Free the unmanaged memory.
                        Marshal.FreeHGlobal(pnt);
                    }
                }
                else
                {
                    InsertBrokerOperationLog.AddProcessLog(strIp + " :Camera is offline");
                    //Log message... strIp Camera is offline
                }
            }
            catch (Exception ex)
            {
                InsertBrokerOperationLog.AddProcessLog("Error  ProcessDevTimeSync ..." + ex.Message);
                MessageBox.Show("Error  ProcessDevTimeSync ..." + ex.Message);
            }


            //System.Windows.Application.Current.Dispatcher.BeginInvoke((Action)(() =>
            //{
            //    _MainWindow.LogText.AppendText("\n\n" + DateTime.Now.ToString() + "  Process Hik Cam for Ip " + strIp + " End ..." + _nCount.ToString());
            //}));

            // OperationLogs.AddLog("Process Hik Cam for Ip " + strIp + " End ... " + _nCo.ToString() + " "  + _nCount.ToString());
        }
コード例 #15
0
        public void PingClient(object sender, ElapsedEventArgs e)
        {
            _PingClientTimer.Stop();
            try
            {
                using (var context = new CentralDBEntities())
                {
                    //var result2 = stationEntity.Select(x => x.IsActive == true && !x.Identifier.Contains("Webclient") && !x.Identifier.Contains("Mobile")).ToArray();

                    var fromStation = context.Station.Where(it => it.IsActive == true && !it.Identifier.Contains("Webclient") && !it.Identifier.Contains("Mobile"));
                    var result      = fromStation.Select(Mapper.Map <AMS.Broker.Contracts.DTO.Station>).ToArray();
                    if (result.Count() > 0)
                    {
                        foreach (var actstation in result)
                        {
                            string strIp = actstation.LocationDescription;
                            if (strIp != "")
                            {
                                try
                                {
                                    //string _strUrl = "http://" + strIp + ":4532/soap/LoginStatusService";
                                    string          _strUrl = "http://" + strIp + ":6532/ControllerCallBackCommService";
                                    EndpointAddress ar      = new EndpointAddress(_strUrl);
                                    AMS.Broker.WatchDogService.LoginStatusServiceRef.LoginStatusClient _serVice = new AMS.Broker.WatchDogService.LoginStatusServiceRef.LoginStatusClient("WSHttpBinding_ILoginStatus", ar.ToString()); //WSHttpBinding_ILoginStatus
                                    _serVice.Endpoint.Binding.OpenTimeout = TimeSpan.FromSeconds(3);
                                    _serVice.Endpoint.Binding.SendTimeout = TimeSpan.FromSeconds(3);
                                    int nRetVal = _serVice.CheckStatus();
                                    _serVice.Close();
                                    if (nRetVal < 1)
                                    {
                                        actstation.IsActive = false;
                                        context.SaveChanges();
                                        ClearMemory();
                                    }
                                    if (nRetVal == 1)
                                    {
                                        actstation.IsActive = true;
                                        context.SaveChanges();
                                        ClearMemory();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    var station = context.Station.FirstOrDefault(x => x.LocationDescription == strIp);
                                    station.IsActive = false;
                                    context.SaveChanges();
                                    ClearMemory();
                                }
                            }
                        }
                    }
                }

                _PingClientTimer.Start();
            }
            catch (Exception ex)
            {
                _logger.Info("GatewayService PingClient() Exception" + ex.Message);
                InsertBrokerOperationLog.AddProcessLog("GatewayService PingClient() Exception" + ex.Message);
            }
            //get active station
            //ping active station
            //update station status if not ping
        }