Exemplo n.º 1
0
        public ActionResult SaveDiagram(string dataUri, string filename, int level)
        {
            var result = new { Success = "True", Message = "Success" };

            // Data URI format
            // data:[<MIME-type>][;charset=<encoding>][;base64],<data>
            // Data URI Example
            // data:application/pdf;base64,JVBERi0xLjQKJcLB2s.....

            const string mimeTypeMarker = "data:";
            var          mimeTypeIndex  = dataUri.IndexOf(mimeTypeMarker, System.StringComparison.Ordinal) + mimeTypeMarker.Length;
            var          mimeType       = dataUri.Substring(mimeTypeIndex,
                                                            dataUri.IndexOf(";", System.StringComparison.Ordinal) - mimeTypeIndex);

            const string base64Marker = ";base64,";
            var          base64Index  = dataUri.IndexOf(base64Marker, System.StringComparison.Ordinal) + base64Marker.Length;
            var          base64       = dataUri.Substring(base64Index);

            try
            {
                // RetryableOperation to Log Unexpected Error and Alert Error Instance id.
                RetryableOperation.Invoke(ExceptionPolicies.General,
                                          () =>
                {
                    var userName = _contextManager.UserManager.Name;
                    var dateTime = DateTime.Now;

                    var diagram = new Model.Diagram
                    {
                        CustomerId   = _appUserContext.Current.CurrentCustomer.Id,
                        Level        = level,
                        MimeType     = mimeType,
                        DiagramData  = Convert.FromBase64String(base64),
                        Filename     = filename,
                        InsertedBy   = userName,
                        InsertedDate = dateTime,
                        UpdatedBy    = userName,
                        UpdatedDate  = dateTime,
                    };

                    _diagramService.Create(diagram);
                });
            }
            catch (Exception ex)
            {
                _contextManager.ResponseManager.StatusCode = 500;
                _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, ex.Message);
                result = new { Success = "False", ex.Message };
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        public ActionResult UploadCustomerFile(UploadCustomerFileViewModel model)
        {
            var result = GetJsonSuccessResponse();

            if (ModelState.IsValid)
            {
                try
                {
                    if (_appUserContext.Current.CurrentCustomer != null)
                    {
                        var userName    = _contextManager.UserManager.Name;
                        var dateTimeNow = DateTime.Now;

                        var diagram = new Model.Diagram
                        {
                            Level        = model.EditLevel.GetEnumIntFromText <LevelName>(),
                            CustomerId   = _appUserContext.Current.CurrentCustomer.Id,
                            Filename     = Path.GetFileName(model.CustomerFile.FileName),
                            DiagramNotes = model.Notes,
                            MimeType     = model.CustomerFile.ContentType,
                            UpdatedDate  = dateTimeNow,
                            UpdatedBy    = userName,
                            InsertedDate = dateTimeNow,
                            InsertedBy   = userName
                        };

                        using (var reader = new BinaryReader(model.CustomerFile.InputStream))
                        {
                            diagram.DiagramData = reader.ReadBytes(model.CustomerFile.ContentLength);
                        }

                        _diagramService.Create(diagram);
                    }
                }
                catch (Exception ex)
                {
                    result = GetJsonErrorResponse(ex.Message);
                    ExceptionPolicy.HandleException(ex, ExceptionPolicies.General);
                }
            }
            else
            {
                _contextManager.ResponseManager.StatusCode = 500;
                return(Json(new DataSourceResult {
                    Errors = ModelState.GetModelStateMesssages().FirstOrDefault()
                }));
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        public void DiagramService_Create_CallInsertDiagramAndCallsSaveChanges()
        {
            #region Arrange

            var dateTimeNow = DateTime.Now;

            var diagram = new Diagram
            {
                Id           = 5,
                Level        = 1,
                CustomerId   = 3,
                MimeType     = MimeType,
                Filename     = "ServiceDeskWithInputs",
                DiagramData  = Convert.FromBase64String(Data),
                InsertedBy   = UserNameOne,
                InsertedDate = dateTimeNow,
                UpdatedBy    = UserNameOne,
                UpdatedDate  = dateTimeNow,
            };

            #endregion

            #region Act

            var response = _diagramService.Create(diagram);

            #endregion

            #region Assert

            _mockDiagramRepository.Verify(x => x.Insert(It.IsAny <Diagram>()), Times.Once());
            _mockUnitOfWork.Verify(x => x.Save(), Times.Exactly(1));

            Assert.IsNotNull(response);
            Assert.AreEqual(_diagrams.Count, response);

            #endregion
        }