예제 #1
0
    private void Init(MemberItem item)
    {
        m_Item          = item;
        m_EnglishMember = new MemberSession(m_Browser.docProject, m_Item, LanguageUtil.ELanguage.English);
        if (m_Browser.translating)
        {
            // First get translated member text
            item.DocModelTranslated.SanitizeForEditing();
            string translatedModelTextOld = item.DocModelTranslated.ToString();

            // Load translated member and change its doc model to match the English version
            m_TranslatedMember = MergeTranslated(m_Item.DocModel, m_Item.DocModelTranslated);

            // Load translated member as dummy using old translated docs
            m_TranslatedMemberOld = new MemberSession(m_Browser.docProject, m_Item, translatedModelTextOld, m_Browser.language);

            // Figure out if merged is identical to old translated. If it is, don't show old translated column.
            m_ShowMerge = (m_TranslatedMemberOld.Model.ToString().Trim() != string.Empty && m_TranslatedMember.Model.ToString() != m_TranslatedMemberOld.Model.ToString());
            m_TranslatedMember.DirtyAutoChanges = m_ShowMerge;
        }
        else
        {
            m_TranslatedMember    = null;
            m_TranslatedMemberOld = null;
        }
    }
예제 #2
0
        public string GetNotifications(int id) // senderId
        {
            var messageNotificationListViewModel = new MessageNotificationListModel(MemberSession.GetMemberId());

            if (messageNotificationListViewModel.Notifications == null ||
                messageNotificationListViewModel.OrderedMessages.Count == 0)
            {
                return(false.ToString());
            }

            messageNotificationListViewModel.CheckNotifications(MemberSession.GetMemberId());

            var messageList = new MessageListModel
            {
                OrderedMessages = messageNotificationListViewModel.OrderedMessages
            };
            var jsonSerialiser = new JavaScriptSerializer();
            var json           = jsonSerialiser.Serialize(messageList);

            // obrisati sve notifikacje od tog Sendera, namenjene receiveru
            var messageNotification = new MessageNotification();

            messageNotification.DeleteAllFrom(id, MemberSession.GetMemberId());

            return(json); // vraca listu nedodatih poruka
        }
예제 #3
0
    private void Init(MemberItem docItem, MemberItem asmItem)
    {
        m_Item          = asmItem;
        m_OrphanDocItem = docItem;
        m_EnglishMember = new MemberSession(m_Browser.docProject, m_Item, LanguageUtil.ELanguage.English);

        // Find pure member name of asm and doc
        string docMemberName        = docItem.Signatures.First(e => e.InDoc).Name;
        int    paramsStartIndexChar = docMemberName.IndexOfAny(new char[] { '(', '<' });

        if (paramsStartIndexChar >= 0)
        {
            docMemberName = docMemberName.Substring(0, paramsStartIndexChar);
        }
        string asmMemberName = asmItem.Signatures.First(e => e.InAsm).Asm.Name;

        // Create merged doc text
        string merged = docItem.DocModel.ToString();

        merged = merged.Replace(docMemberName, asmMemberName);

        // Load merged
        m_Item.LoadDoc(merged, LanguageUtil.ELanguage.English);
        m_EnglishMember.DirtyAutoChanges = true;

        // Set diff
        m_EnglishMember.TextCurrent = m_Item.DocModel.ToString();
        m_EnglishMember.Diff.Compare(m_EnglishMember.TextOrig, m_EnglishMember.TextCurrent);

        m_TranslatedMember    = null;
        m_TranslatedMemberOld = null;
    }
예제 #4
0
    void DocEditGUI(MemberSession member, bool readOnly)
    {
        if (!m_Browser.translating)
        {
            if (EditGrouping)
            {
                GUILayout.Label("Change order of signatures or whole sections by dragging the handles next to signatures or sections headers.\nThe descriptions and examples are hidden in this mode.", "helpbox");
            }

            IEnumerable <SignatureEntry> missingDocSignatures = member.Member.Signatures.Where(s => s.InAsmOrDoc).Where(s => !s.InDoc);
            if (missingDocSignatures.Count() > 0)
            {
                if (!EditGrouping)
                {
                    string missingSigsString = string.Join("\n", missingDocSignatures.Select(e => e.Formatted).ToArray());
                    EditorGUILayout.HelpBox("Some signatures are missing from the docs (click 'Edit Grouping' to edit):\n" + missingSigsString, MessageType.Warning);
                }
                else
                {
                    // Show signatures with missing docs and allow moving down into doc sub sections
                    GUILayout.BeginHorizontal();
                    GUILayout.Space(24);
                    GUILayout.Label("Signatures Missing from Docs", DocBrowser.styles.docSectionHeader);
                    GUILayout.EndHorizontal();
                    GUI.backgroundColor = GetColor(true, false);
                    GUILayout.BeginVertical(DocBrowser.styles.docArea, GUILayout.ExpandHeight(false));
                    GUI.backgroundColor = Color.white;
                    List <string> missingSigs = missingDocSignatures.Select(e => e.Name).ToList();
                    for (int i = 0; i < missingSigs.Count; i++)
                    {
                        SignatureGUI(member, -1, missingSigs, i, readOnly);
                    }
                    GUILayout.Space(3);
                    GUILayout.EndVertical();
                }

                EditorGUILayout.Space();
            }
        }

        m_SelectedSection = -1;
        m_SelectedText    = -1;
        // Display each section
        for (int i = 0; i < member.Model.SubSections.Count; i++)
        {
            SubSectionEditGUI(member, i, readOnly);
        }

        // Section header for adding new section
        if (EditGrouping && member.Member.MultipleSignaturesPossible)
        {
            SectionHeaderGUI(member, -1, readOnly);
            EditorGUILayout.Space();
        }

        EditorGUILayout.Space();

        GUILayout.FlexibleSpace();
    }
예제 #5
0
 public ActionResult SavePdfFile(string padavanId, string text)
 {
     if (padavanId != "")
     {
         Data.Entities.MPs.SavePDF(MemberSession.GetMemberId(), int.Parse(padavanId), text);
     }
     return(RedirectToAction("Index"));
 }
예제 #6
0
        public int GetNumberOfNotifications()
        {
            var message = new MessageNotification();

            var br = message.NumberOfNotifications(MemberSession.GetMemberId());

            return(br);
        }
예제 #7
0
    void SignatureGUI(MemberSession member, int sectionIndex, List <string> signatureList, int signatureIndex, bool readOnly)
    {
        string         sig      = signatureList[signatureIndex];
        SignatureEntry sigEntry = member.Member.GetSignature(sig, true);

        bool edit = !readOnly && !m_Browser.translating && member.Member.MultipleSignaturesPossible;

        EditorGUI.BeginChangeCheck();

        GUILayout.BeginHorizontal();

        if (edit)
        {
            GUILayout.Space(4);
            Rect rect = GUILayoutUtility.GetRect(14, 14, GUILayout.ExpandWidth(false));
            rect.y += 4;

            DocBrowser.DragHandle(rect, typeof(SignatureEntry), signatureList, signatureIndex, DocBrowser.styles.dragHandle);

            if (!sigEntry.InAsm || sigEntry.Asm.Private)
            {
                GUILayout.Space(4);
                rect    = GUILayoutUtility.GetRect(14, 14, GUILayout.ExpandWidth(false));
                rect.y += 4;
                if (MiniButton(rect, DocBrowser.styles.iconRemove))
                {
                    signatureList.RemoveAt(signatureIndex);
                }
            }
        }

        string sigString = m_Browser.ShowRawNames ? sigEntry.Name : sigEntry.FormattedHTML;

        if (sigEntry.InAsm && sigEntry.Asm.Private)
        {
            sigString = "<b><color=red>private</color></b> " + sigString;
        }

        GUILayout.Label(sigString, DocBrowser.styles.signature);

        GUILayout.EndHorizontal();

        // Handle dragging
        Rect dragTargetRect = GUILayoutUtility.GetRect(10, 0);

        dragTargetRect.y     -= 3;
        dragTargetRect.height = 14;
        DocBrowser.DragTarget(dragTargetRect, typeof(SignatureEntry), signatureList, signatureIndex + 1);

        if (EditorGUI.EndChangeCheck())
        {
            member.OnModelEdited(true);
        }
    }
예제 #8
0
 /// <summary>
 /// Sets the user.
 /// </summary>
 /// <param name="user">The user.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
 public static bool SetUser(MemberSession user)
 {
     if (HttpContext.Current != null &&
         HttpContext.Current.Session != null)
     {
         HttpContext.Current.Session.Remove(SessionCustomer.sessionName);
         user.SessionId = HttpContext.Current.Session.SessionID;
     }
     HttpContext.Current.Session.Add(SessionCustomer.sessionName, user);
     return(true);
 }
예제 #9
0
 public static TethysAvatar GetAvatar(MemberSession session, AvatarSize size)
 {
     return(new TethysAvatar
     {
         Id = session.Id,
         DisplayName = session.To.DisplayName,
         Background = AvatarHelper.GetColorBrush(session.To.DisplayName),
         DisplayNamePinyin = session.To.DisplayNamePinyin,
         Name = session.To.Name,
         Source = GetAvatarBitmap(session.To.Avatar, size, FromType.User)
     });
 }
예제 #10
0
        public string Conversation(int id) // receiverId
        {
            var messageList = new MessageListModel(id);

            var jsonSerialiser = new JavaScriptSerializer();
            var json           = jsonSerialiser.Serialize(messageList);

            // TODO: postavi da se sve notifikacije obrisu koje su bile za tog usera
            var messageNotification = new MessageNotification();

            messageNotification.DeleteAllFrom(id, MemberSession.GetMemberId());
            return(json);
        }
예제 #11
0
    void ParametersAndReturnGUI(MemberSession member, int sectionIndex, bool readOnly)
    {
        MemberSubSection section = member.Model.SubSections[sectionIndex];

        // Parameters
        if (section.Parameters.Count > 0)
        {
            GUILayout.Label("Parameters", DocBrowser.styles.docSectionHeader);

            // Handle dragging parameter into first slot
            Rect dragTargetRect = GUILayoutUtility.GetRect(10, 0);
            dragTargetRect.y     -= 6;
            dragTargetRect.height = 14;
            DocBrowser.DragTarget(dragTargetRect, typeof(ParameterWithDoc), section.Parameters, 0);

            ParameterWithDoc paramToRemove = null;
            for (int i = 0; i < section.Parameters.Count; i++)
            {
                ParameterWithDoc p     = section.Parameters[i];
                string           label = "<b>" + p.Name + " : </b>" + (p.HasAsm ? Extensions.GetNiceName(p.TypeString) : "?");
                bool             remove;
                p.Doc = ParamOrReturnGUI(p.HasAsm, p.HasDoc, label, p.Doc, member.Language, readOnly, out remove, section.Parameters, i);
                if (remove)
                {
                    paramToRemove = p;
                }
            }
            if (paramToRemove != null)
            {
                section.Parameters.Remove(paramToRemove);
            }
        }

        // Returns
        if (section.ReturnDoc != null)
        {
            GUILayout.Label("Returns", DocBrowser.styles.docSectionHeader);
            ReturnWithDoc p     = section.ReturnDoc;
            string        label = (p.HasAsm ? Extensions.GetNiceName(p.ReturnType) : "?");
            bool          remove;
            p.Doc = ParamOrReturnGUI(p.HasAsm, p.HasDoc, label, p.Doc, member.Language, readOnly, out remove);
            if (remove)
            {
                section.ReturnDoc = null;
            }
        }

        EditorGUILayout.Space();
    }
예제 #12
0
파일: PollModel.cs 프로젝트: n-mitic/portal
        public static PollModel Load(int pollId)
        {
            var model = new PollModel
            {
                PollDetails = CreatePollDTO(pollId),
                PollOptions = CreatePollOptionDTOs(pollId)
            };

            // ovo ce da zatvori glasanje ako mu je proslo vreme
            model = CheckUpdatePollState(model);

            model.AlreadyVoted = Polls.CheckIfMemberVotedInPoll(MemberSession.GetMemberId(), pollId);

            return(model);
        }
예제 #13
0
    private void DocColumnGUI(MemberSession member, bool readOnly, ref Vector2 scroll, float width, string title)
    {
        GUILayout.BeginVertical();

        if (m_Browser.translating)
        {
            GUILayout.Label(title, DocBrowser.styles.docHeader);
        }

        scroll = GUILayout.BeginScrollView(scroll, DocBrowser.styles.docArea, GUILayout.Width(width));
        DocEditGUI(member, readOnly);
        GUILayout.EndScrollView();

        GUILayout.EndVertical();
    }
예제 #14
0
    protected async Task <bool> CheckSession()
    {
        try
        {
            if (HttpContext.Current.Request.QueryString.Get("isNative") == "1")
            {
                IsNative = "1";
            }

            var token = HttpContext.Current.Request.QueryString.Get("token");
            if (!string.IsNullOrEmpty(token))
            {
                token = Encryption.Decrypt(W88.Utilities.Constant.EncryptionType.TripleDESCS, token);
            }
            if (string.IsNullOrEmpty(token))
            {
                token = HttpContext.Current.Request.Headers.Get("token");
                if (string.IsNullOrEmpty(token))
                {
                    token = Token;
                }
                if (string.IsNullOrEmpty(token))
                {
                    return(false);
                }
            }
            var process = await MembersHelper.MembersSessionCheck(token);

            if (!(process.Code == 1 && !string.IsNullOrEmpty(process.Data.Token)))
            {
                return(false);
            }
            var sessionInfo = await MembersHelper.GetMemberInfo(token);

            if (string.IsNullOrEmpty(sessionInfo.MemberCode))
            {
                return(false);
            }
            UserSessionInfo = sessionInfo;
            MemberSession   = process.Data;
            SetMemberRewardsInfo();
        }
        catch (Exception)
        {
            return(false);
        }
        return(true);
    }
예제 #15
0
파일: MPModel.cs 프로젝트: n-mitic/portal
        public static MPModel Load()
        {
            MPModel mpm = new MPModel();

            mpm.master          = new MPDTO();
            mpm.master.Padawans = new List <MemberDTO>();

            mpm.fullMembers   = new List <MemberDTO>();
            mpm.whitoutMaster = new List <MemberDTO>();
            mpm.reports       = new List <MemberMasterDTO>();

            List <Member> padawans = Data.Entities.MPs.GetPadawansFrom(MemberSession.GetMemberId());

            foreach (Member p in padawans)
            {
                if (!p.IsDeleted)
                {
                    mpm.master.Padawans.Add(MVC.Models.CompanyModel.createMemberDTO(p));
                }
            }

            List <Member> full = Data.Entities.Members.GetFullMembers();

            foreach (Member f in full)
            {
                if (!f.IsDeleted)
                {
                    mpm.fullMembers.Add(MVC.Models.CompanyModel.createMemberDTO(f));
                }
            }

            List <Member> without = Data.Entities.Members.GetWithoutMaster();

            foreach (Member m in without)
            {
                mpm.whitoutMaster.Add(MVC.Models.CompanyModel.createMemberDTO(m));
            }

            List <MemberMaster> report = Data.Entities.MPs.GetReports();

            foreach (MemberMaster mm in report)
            {
                mpm.reports.Add(createMemberMasterDTO(mm));
            }

            return(mpm);
        }
예제 #16
0
        public ActionResult Index(int?id = null)
        {
            var model = CompanyModel.Load(MemberSession.GetMemberId());

            if (id != null)
            {
                if (MemberSession.GetRole() == Enumerations.Role.Administrator ||
                    MemberSession.GetRole() == Enumerations.Role.FR)
                {
                    model.Show = model.AllCompany.Find(x => x.CompanyId == id);
                }
                else
                {
                    model.Show = model.MyCompany.Find(x => x.CompanyId == id);
                }
            }
            return(View(model));
        }
예제 #17
0
 public void OnEnable(MemberItem selectedMember)
 {
     // Code below is executed both when the window is opened and at mono reloads.
     if (selectedMember != null)
     {
         m_Item = selectedMember;
         m_EnglishMember.OnEnable(selectedMember);
         if (m_Browser.translating)
         {
             m_TranslatedMember.OnEnable(selectedMember);
             m_TranslatedMemberOld.OnEnable(selectedMember);
         }
     }
     else
     {
         m_EnglishMember       = null;
         m_TranslatedMember    = null;
         m_TranslatedMemberOld = null;
     }
 }
예제 #18
0
        public void SaveComment(string text, string tip, string projekat, string companyId)
        {
            int idc;

            int.TryParse(companyId, out idc);

            int idp;

            int.TryParse(projekat, out idp);

            var type = Enumerations.CommentType.Classic;

            foreach (int i in Enum.GetValues(typeof(Enumerations.CommentType)))
            {
                if (((Enumerations.CommentType)i).ToString().CompareTo(tip) == 0)
                {
                    type = (Enumerations.CommentType)i;
                }
            }
            Comments.AddComment(MemberSession.GetMemberId(), idc, idp, type, text);
        }
예제 #19
0
        public ActionResult Edit(MemberEditProfileModel model)
        {
            var memberId = MemberSession.GetMemberId();

            if (ModelState.IsValid)
            {
                byte[] array = null;
                if (model.Avatar != null)
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        model.Avatar.InputStream.Position = 0;
                        model.Avatar.InputStream.CopyTo(ms);
                        array = ms.GetBuffer();
                    }
                }
                Members.EditProfile(memberId, model.Nickname, array,
                                    model.Faculty, model.DateOfBirth, model.Status, model.Phone,
                                    model.Facebook, model.LinkedIn, model.Skype);
            }

            return(RedirectToAction("Profile", new { id = memberId }));
        }
예제 #20
0
        public string SetMessage(int id, string text) // id - receiverId
        {
            try
            {
                var messageDTO = new MessageDTO
                {
                    SenderId   = MemberSession.GetMemberId(),
                    ReceiverId = id,
                    Text       = text,
                    Time       = DateTime.Now
                };


                var message = new Message();

                message.Save(ref messageDTO);
                // put notification

                var messageNotification = new MessageNotification();

                var messageNotificationDTO = new MessageNotificationDTO
                {
                    Time       = DateTime.Now,
                    MessageId  = messageDTO.MessageId,
                    ReceiverId = id,
                    SenderId   = MemberSession.GetMemberId()
                };

                messageNotification.Save(messageNotificationDTO);
                return(true.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(false.ToString());
            }
        }
예제 #21
0
        public ActionResult ChangePassword(MemberChangePasswordModel m)
        {
            try
            {
                if (!Members.CheckMemberPassword(MemberSession.GetMemberId(), m.OldPassword))
                {
                    return(RedirectToAction("ChangePassword", new { message = "Pogresna stara lozinka." }));
                }
                else if (m.NewPassword != m.RepeatPassword)
                {
                    return(RedirectToAction("ChangePassword", new { message = "Polja za novu lozinku nisu jednaka." }));
                }
                else
                {
                    Members.ChangeMemberPassword(MemberSession.GetMemberId(), m.NewPassword);
                }

                return(RedirectToAction("ChangePassword", new { message = "Nesto ne valja." }));
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "Access"));
            }
        }
예제 #22
0
        public ActionResult Add(PollAddModel model)
        {
            Polls.AddPoll(model.Topic, model.Description, model.AllowMultiple, model.HideResultsUntilFinished,
                          model.HideVoters, model.EndDate, model.EndTime, model.Options, MemberSession.GetMemberId());

            return(RedirectToAction("AllPolls"));
        }
예제 #23
0
        public async Task SendRequestEmail(string text, Data.Enumerations.FeedbackType type, byte[] pdf = null)
        {
            MemberDTO user = MVC.Models.CompanyModel.createMemberDTO(Data.Entities.Members.GetMemberAt(MemberSession.GetMemberId()));
            //MemoryStream stream = new MemoryStream(pdf);


            var body    = "<p>Feedback from: {0} ({1})</p><p>Type: {2}</p><p>Text: {3}</p>";
            var message = new MailMessage();

            message.To.Add(new MailAddress("*****@*****.**"));
            message.From       = new MailAddress("*****@*****.**");
            message.Subject    = "Feedback";
            message.Body       = string.Format(body, user.Name + " " + user.Surname, user.Gmail.ToString(), type.ToString(), text);
            message.IsBodyHtml = true;
            //message.Attachments.Add(new Attachment(stream, "Request.pdf", System.Net.Mime.MediaTypeNames.Application.Pdf));


            using (var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = "******",
                    Password = "******"
                };
                smtp.Credentials = credential;
                smtp.Host        = "smtp.gmail.com";
                smtp.Port        = 587;
                smtp.EnableSsl   = true;
                await smtp.SendMailAsync(message);
            }
        }
예제 #24
0
 public static void ForShowAvatar(this MemberSession session, AvatarSize size)
 {
     session.NamePinyin   = session.To.DisplayNamePinyin;
     session.TethysAvatar = AvatarHelper.GetAvatar(session, size);
 }
예제 #25
0
    private MemberSession MergeTranslated(MemDocModel english, MemDocModel translatedOld)
    {
        MemberSession translatedNewMember = new MemberSession(m_Browser.docProject, m_Item, translatedOld.Language);
        MemDocModel   translatedNew       = translatedNewMember.Model;

        // If number of sections don't match at all, make new list of sections
        if (english.SubSections.Count != translatedNew.SubSections.Count)
        {
            translatedNew.SubSections.Clear();
            for (int i = 0; i < english.SubSections.Count; i++)
            {
                translatedNew.SubSections.Add(new MemberSubSection(""));
            }
        }

        for (int s = 0; s < english.SubSections.Count; s++)
        {
            MemberSubSection engSec = english.SubSections[s];
            MemberSubSection newSec = translatedNew.SubSections[s];

            // Replace signatures
            newSec.SignatureList = engSec.SignatureList;
            // Replace flags
            newSec.IsCsNone = engSec.IsCsNone;
            newSec.IsUndoc  = engSec.IsUndoc;

            // Merge parameters
            List <ParameterWithDoc> oldParams = newSec.Parameters;
            newSec.Parameters = new List <ParameterWithDoc> ();
            foreach (ParameterWithDoc engParam in engSec.Parameters)
            {
                ParameterWithDoc newParam = new ParameterWithDoc(engParam.Name);
                newParam.Types = engParam.Types;
                ParameterWithDoc oldParam = oldParams.FirstOrDefault(e => e.Name == engParam.Name);
                if (oldParam != null && !string.IsNullOrEmpty(oldParam.Doc))
                {
                    newParam.Doc = oldParam.Doc;
                }
                else
                {
                    newParam.Doc = GetInitialTranslationString(engParam.Doc);
                }
                newSec.Parameters.Add(newParam);
            }

            // Merge return type
            if (engSec.ReturnDoc == null)
            {
                newSec.ReturnDoc = null;
            }
            else
            {
                string returnDocString = newSec.ReturnDoc != null ? newSec.ReturnDoc.Doc : GetInitialTranslationString(engSec.ReturnDoc.Doc);
                newSec.ReturnDoc            = new ReturnWithDoc();
                newSec.ReturnDoc.ReturnType = engSec.ReturnDoc.ReturnType;
                newSec.ReturnDoc.Doc        = returnDocString;
            }

            // Merge text blocks
            bool blockTypesMatch = true;
            if (newSec.TextBlocks.Count != engSec.TextBlocks.Count)
            {
                blockTypesMatch = false;
            }
            else
            {
                for (int i = 0; i < engSec.TextBlocks.Count; i++)
                {
                    if (engSec.TextBlocks[i].GetType() != newSec.TextBlocks[i].GetType())
                    {
                        blockTypesMatch = false;
                    }
                }
            }

            // If block types match, only replace examples
            if (blockTypesMatch)
            {
                for (int i = 0; i < engSec.TextBlocks.Count; i++)
                {
                    TextBlock engBlock = engSec.TextBlocks[i];
                    if (engBlock is ExampleBlock)
                    {
                        newSec.TextBlocks[i] = engBlock;
                    }
                }
            }
            // If block types don't match, replace examples and make all description
            // blocks have TODO in them (except if the English one is empty too).
            else
            {
                newSec.TextBlocks.Clear();
                for (int i = 0; i < engSec.TextBlocks.Count; i++)
                {
                    TextBlock engBlock = engSec.TextBlocks[i];
                    if (engBlock is ExampleBlock)
                    {
                        newSec.TextBlocks.Add(engBlock);
                    }
                    else if (engBlock is DescriptionBlock)
                    {
                        newSec.TextBlocks.Add(new DescriptionBlock(GetInitialTranslationString(engBlock.Text)));
                    }
                }
            }
        }

        translatedNewMember.TextOrig    = translatedOld.ToString();
        translatedNewMember.TextCurrent = translatedNew.ToString();
        translatedNewMember.Diff.Compare(translatedNewMember.TextOrig, translatedNewMember.TextCurrent);
        return(translatedNewMember);
    }
예제 #26
0
    void SubSectionEditGUI(MemberSession member, int sectionIndex, bool readOnly)
    {
        MemberSubSection section = member.Model.SubSections[sectionIndex];

        if ((member.Member.MultipleSignaturesPossible && member.Model.SubSections.Count > 1) || EditGrouping)
        {
            SectionHeaderGUI(member, sectionIndex, readOnly);
        }
        else
        {
            GUILayout.Space(18);
        }

        if (!m_Browser.translating)
        {
            // Toggle for NoDoc
            Rect toggleRect = GUILayoutUtility.GetRect(10, 0);
            toggleRect.height = 16;
            toggleRect.y     -= 16;
            toggleRect.xMin   = toggleRect.xMax - 175;
            EditorGUI.BeginChangeCheck();
            section.IsUndoc = GUI.Toggle(toggleRect, section.IsUndoc, "Exclude section from docs");
            if (EditorGUI.EndChangeCheck())
            {
                member.OnModelEdited();
            }
        }

        // Show signatures
        for (int i = 0; i < section.SignatureList.Count; i++)
        {
            SignatureGUI(member, sectionIndex, section.SignatureList, i, readOnly);
        }

        if (section.IsUndoc)
        {
            if (!m_Browser.translating)
            {
                EditorGUILayout.HelpBox("This section will be excluded from the documentation but it will still show up in intelli-sense etc. Many users may not realize it's not officially supported. Consider either making the API internal or include it in the documentation.", MessageType.Warning);
            }
            else
            {
                EditorGUILayout.HelpBox("This section is not documented. No translation is needed.", MessageType.Info);
            }
        }
        else
        {
            if (!EditGrouping)
            {
                EditorGUI.BeginChangeCheck();
                ParametersAndReturnGUI(member, sectionIndex, readOnly);
                DescriptionAndExamplesGUI(member, sectionIndex, readOnly);
                if (EditorGUI.EndChangeCheck())
                {
                    member.OnModelEdited();
                }
            }
        }

        EditorGUILayout.Space();

        GUI.enabled = true;
    }
예제 #27
0
        // GET: MemberProfile
        public ActionResult Index()
        {
            var model = MemberIndexModel.Load(MemberSession.GetMemberId());

            return(View(model));
        }
예제 #28
0
        public static void SetMemberSession(Customers member)
        {
            var session = new MemberSession(member.Id, member.Mobile, member.FullName);

            Session[Constants.LOGIN_SESSION_ID] = session;
        }
예제 #29
0
        public ActionResult Edit()
        {
            var model = MemberEditProfileModel.Load(MemberSession.GetMemberId());

            return(View(model));
        }
예제 #30
0
    void DescriptionAndExamplesGUI(MemberSession member, int sectionIndex, bool readOnly)
    {
        MemberSubSection section = member.Model.SubSections[sectionIndex];

        // Summary
        string controlName = "Section_" + sectionIndex + "_Summary";

        GUI.SetNextControlName(controlName);
        if (GUI.GetNameOfFocusedControl() == controlName)
        {
            m_SelectedSection = sectionIndex;
            m_SelectedText    = 0;
        }
        GUILayout.Label("Description (first line is summary)", DocBrowser.styles.docSectionHeader);
        if (!readOnly)
        {
            GUI.backgroundColor = GetColor(true, m_Browser.translating ? section.Summary != sTodoText : section.Summary != string.Empty);
        }
        section.Summary     = TextArea(section.Summary, DocBrowser.styles.description, readOnly, member.Language);
        GUI.backgroundColor = Color.white;

        // Description and examples
        int i             = 0;
        int removeExample = -1;

        foreach (TextBlock t in section.TextBlocks)
        {
            bool isExample = (t is ExampleBlock);

            controlName = "Section_" + sectionIndex + "_Text_" + i;
            GUI.SetNextControlName(controlName);
            if (GUI.GetNameOfFocusedControl() == controlName && !isExample)
            {
                m_SelectedSection = sectionIndex;
                m_SelectedText    = i;
            }

            if (isExample)
            {
                GUILayout.Space(4);

                EditorGUILayout.BeginHorizontal();
                var example = t as ExampleBlock;

                GUILayout.FlexibleSpace();

                EditorGUI.BeginDisabledGroup(readOnly || m_Browser.translating);
                example.IsConvertExample = GUILayout.Toggle(example.IsConvertExample, "Convert");
                example.IsNoCheck        = GUILayout.Toggle(example.IsNoCheck, "NoCheck");
                if (GUILayout.Button("Delete", EditorStyles.miniButton))
                {
                    removeExample = i;
                }
                EditorGUI.EndDisabledGroup();

                EditorGUILayout.EndHorizontal();

                // Some hackery to show the label nicely, since gui margins don't work inside a horizontal group.
                Rect r = GUILayoutUtility.GetLastRect();
                r.x += 4; r.y += 3;
                GUI.Label(r, "Example", DocBrowser.styles.docSectionHeader);

                t.Text = TextArea(t.Text, DocBrowser.styles.example, readOnly || m_Browser.translating, member.Language);
            }
            else
            {
                if (i > 0)
                {
                    GUILayout.Label("Description (continued)", DocBrowser.styles.docSectionHeader);
                }
                t.Text = TextArea(t.Text, DocBrowser.styles.description, readOnly, member.Language);
            }

            i++;
        }

        if (removeExample >= 0)
        {
            section.TextBlocks.RemoveAt(removeExample);
            EditMember.Model.SanitizeForEditing();
        }
    }